Simulate version vector communication cost
Make a random number of (or a specified percentage of) tags and versions to be sent from the sequencer to the grv proxy (and from the grv proxy to the client).
Changes:
ServerKnobs.h: Introduce knobs NUMBER_OF_SS_TAGS_TO_SEND and PERCENTAGE_OF_SS_TAGS_TO_SEND. Knob NUMBER_OF_SS_TAGS_TO_SEND takes precedence over PERCENTAGE_OF_SS_TAGS_TO_SEND. Assigning a value that is greater than 100 to PERCENTAGE_OF_SS_TAGS_TO_SEND will cause a random number of tags to be sent from the sequencer to the grv proxy (and from the grv proxy to the client).
SererKnobs.cpp: Set NUMBER_OF_SS_TAGS_TO_SEND to zero and PERCENTAGE_OF_SS_TAGS_TO_SEND to 110.
masterserver.actor.cpp:
- Send a bunch of tags and versions (as part of GetRawCommittedVersionReply) to grv proxy.
GrvProxyServer.actor.cpp:
- Extend GrvProxyData to cache the version vector.
- Propagate the version vector from GetRawCommittedVersionReply to GetReadVersionReply.
CommitProxyInterface.h:
- Extend GetRawCommittedVersionReply and GetReadVersionReply to include the version vector.
Put description here...
Code-Reviewer Section
The general guidelines can be found here.
Please check each of the following things and check all boxes before accepting a PR.
- [ ] The PR has a description, explaining both the problem and the solution.
- [ ] The description mentions which forms of testing were done and the testing seems reasonable.
- [ ] Every function/class/actor that was touched is reasonably well documented.
For Release-Branches
If this PR is made against a release-branch, please also check the following:
- [ ] This change/bugfix is a cherry-pick from the next younger branch (younger
release-branchormasterif this is the youngest branch) - [ ] There is a good reason why this PR needs to go into a release branch and this reason is documented (either in the description above or in a linked GitHub issue)
AWS CodeBuild CI Report
- CodeBuild project: foundationdb-pull-request-build
- Commit ID: e6539c86718ffc309c8145645f1f5c04e3ec43be
- Result: FAILED
- Build Logs (available for 7 days)
The base branch is probably the version vector one?
The base branch is probably the version vector one?
No, it's master.
AWS CodeBuild CI Report
- CodeBuild project: foundationdb-pull-request-build
- Commit ID: 1794040ceea4e577717f2ebbc09f0faa4356ebfc
- Result: FAILED
- Build Logs (available for 7 days)
AWS CodeBuild CI Report
- CodeBuild project: foundationdb-pull-request-build
- Commit ID: 7c91983aeaa76e02dab45359a5e7fa53b54226a0
- Result: SUCCEEDED
- Build Logs (available for 7 days)
AWS CodeBuild CI Report
- CodeBuild project: foundationdb-pull-request-build
- Commit ID: 7c91983
- Result: SUCCEEDED
- Build Logs (available for 7 days)
CodeBuild succeeded. Please review when you get a chance. Thanks!
AWS CodeBuild CI Report
- CodeBuild project: foundationdb-pull-request-build
- Commit ID: dcde064a11550ced9ff3255691a4838b0ebf8cd7
- Result: SUCCEEDED
- Build Logs (available for 7 days)
lgtm modula conflict
AWS CodeBuild CI Report
- CodeBuild project: foundationdb-pull-request-build
- Commit ID: d1c322ddb1ca34016e00b3b0925d94262111da48
- Result: SUCCEEDED
- Build Logs (available for 7 days)
Any more comments on this PR? Thanks!