foundationdb icon indicating copy to clipboard operation
foundationdb copied to clipboard

Simulate version vector communication cost

Open sbodagala opened this issue 4 years ago • 10 comments

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-branch or master if 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)

sbodagala avatar Jul 01 '21 21:07 sbodagala

AWS CodeBuild CI Report

  • CodeBuild project: foundationdb-pull-request-build
  • Commit ID: e6539c86718ffc309c8145645f1f5c04e3ec43be
  • Result: FAILED
  • Build Logs (available for 7 days)

foundationdb-ci avatar Jul 01 '21 22:07 foundationdb-ci

The base branch is probably the version vector one?

jzhou77 avatar Jul 01 '21 23:07 jzhou77

The base branch is probably the version vector one?

No, it's master.

sbodagala avatar Jul 01 '21 23:07 sbodagala

AWS CodeBuild CI Report

  • CodeBuild project: foundationdb-pull-request-build
  • Commit ID: 1794040ceea4e577717f2ebbc09f0faa4356ebfc
  • Result: FAILED
  • Build Logs (available for 7 days)

foundationdb-ci avatar Jul 06 '21 16:07 foundationdb-ci

AWS CodeBuild CI Report

  • CodeBuild project: foundationdb-pull-request-build
  • Commit ID: 7c91983aeaa76e02dab45359a5e7fa53b54226a0
  • Result: SUCCEEDED
  • Build Logs (available for 7 days)

foundationdb-ci avatar Jul 06 '21 19:07 foundationdb-ci

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!

sbodagala avatar Jul 06 '21 20:07 sbodagala

AWS CodeBuild CI Report

  • CodeBuild project: foundationdb-pull-request-build
  • Commit ID: dcde064a11550ced9ff3255691a4838b0ebf8cd7
  • Result: SUCCEEDED
  • Build Logs (available for 7 days)

foundationdb-ci avatar Jul 06 '21 20:07 foundationdb-ci

lgtm modula conflict

dlambrig avatar Jul 06 '21 20:07 dlambrig

AWS CodeBuild CI Report

  • CodeBuild project: foundationdb-pull-request-build
  • Commit ID: d1c322ddb1ca34016e00b3b0925d94262111da48
  • Result: SUCCEEDED
  • Build Logs (available for 7 days)

foundationdb-ci avatar Jul 07 '21 19:07 foundationdb-ci

Any more comments on this PR? Thanks!

sbodagala avatar Jul 13 '21 20:07 sbodagala