Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stable interfaces #3858

Merged
merged 48 commits into from
Dec 11, 2020
Merged

Stable interfaces #3858

merged 48 commits into from
Dec 11, 2020

Conversation

sfc-gh-rchen
Copy link
Contributor

@sfc-gh-rchen sfc-gh-rchen commented Oct 7, 2020

Implements "stable interface" idea Andrew began here to allow processes with differing protocol versions to communicate their protocol versions with each other. This commit adds a stable ProtocolInfoRequest endpoint that can be used to get a processes' protocol version across protocol versions. Later, this endpoint can be used in the Multi-version client, for example, to only run clients which are compatible with the server.

This commit also adds/modifies simulator code necessary to test the stable endpoint idea. This involves adding a new mapping in Sim2 which maps process to protocol version, modifying calls to simulatedFDBDRebooter to start one process with a specified protocol version, and adding an option in test files to modify the protocol version.

Currently, this commit only supports testing one process with a different protocol version.

#3966

@sfc-gh-anoyes sfc-gh-anoyes self-requested a review October 7, 2020 16:14
@xumengpanda
Copy link
Contributor

Can you explain in the PR on

  1. what the problem it solves;
  2. definition of stable interfaces;
  3. high-level design idea;

An example of the PR explanation is #3856.

A good PR description can help people to better understand the implementation.

@sfc-gh-anoyes
Copy link
Collaborator

Can you explain in the PR on

1. what the problem it solves;

2. definition of stable interfaces;

3. high-level design idea;

An example of the PR explanation is #3856.

A good PR description can help people to better understand the implementation.

I can follow up with more design details. For now this is a work in progress draft PR

fdbrpc/FlowTests.actor.cpp Outdated Show resolved Hide resolved
fdbrpc/FlowTransport.actor.cpp Outdated Show resolved Hide resolved
fdbrpc/FlowTransport.actor.cpp Outdated Show resolved Hide resolved
fdbrpc/FlowTransport.h Outdated Show resolved Hide resolved
fdbrpc/sim2.actor.cpp Outdated Show resolved Hide resolved
flow/network.h Outdated Show resolved Hide resolved
fdbserver/workloads/ProtocolVersion.actor.cpp Outdated Show resolved Hide resolved
fdbserver/workloads/ProtocolVersion.actor.cpp Outdated Show resolved Hide resolved
fdbserver/worker.actor.cpp Outdated Show resolved Hide resolved
fdbrpc/simulator.h Outdated Show resolved Hide resolved
@xumengpanda xumengpanda marked this pull request as draft October 28, 2020 17:25
flow/Net2.actor.cpp Outdated Show resolved Hide resolved
@sfc-gh-anoyes sfc-gh-anoyes removed the RFC label Dec 1, 2020
@sfc-gh-rchen sfc-gh-rchen marked this pull request as draft December 2, 2020 03:36
@sfc-gh-rchen sfc-gh-rchen marked this pull request as ready for review December 2, 2020 20:50
@sfc-gh-rchen sfc-gh-rchen marked this pull request as draft December 2, 2020 20:50
@sfc-gh-rchen sfc-gh-rchen marked this pull request as ready for review December 2, 2020 22:54
@sfc-gh-anoyes sfc-gh-anoyes merged commit 9601769 into apple:master Dec 11, 2020
@AlvinMooreSr
Copy link
Contributor

@fdb-build test this please

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants