From 39e43801aa32d2e20d6cc54291a4219007cc3928 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sun, 6 Jun 2021 08:52:07 -0700 Subject: [PATCH] Add ConfigBroadcastFollowerGetChangesReply class --- fdbserver/ConfigBroadcastFollowerInterface.h | 18 ++++++++++++++++-- fdbserver/ConfigBroadcaster.actor.cpp | 2 +- fdbserver/LocalConfiguration.actor.cpp | 2 +- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/fdbserver/ConfigBroadcastFollowerInterface.h b/fdbserver/ConfigBroadcastFollowerInterface.h index bf0f28c30d..1b08460d35 100644 --- a/fdbserver/ConfigBroadcastFollowerInterface.h +++ b/fdbserver/ConfigBroadcastFollowerInterface.h @@ -78,12 +78,26 @@ struct ConfigBroadcastFollowerGetSnapshotRequest { } }; +struct ConfigBroadcastFollowerGetChangesReply { + static constexpr FileIdentifier file_identifier = 4014927; + Version mostRecentVersion; + Standalone> changes; + + ConfigBroadcastFollowerGetChangesReply()=default; + explicit ConfigBroadcastFollowerGetChangesReply(Version mostRecentVersion, Standalone> const& changes) + : mostRecentVersion(mostRecentVersion), changes(changes) {} + + template + void serialize(Ar& ar) { + serializer(ar, mostRecentVersion, changes); + } +}; + struct ConfigBroadcastFollowerGetChangesRequest { static constexpr FileIdentifier file_identifier = 601280; Version lastSeenVersion; ConfigClassSet configClassSet; - // TODO: Should use a different type here because we don't care about annotation - ReplyPromise reply; + ReplyPromise reply; ConfigBroadcastFollowerGetChangesRequest() = default; explicit ConfigBroadcastFollowerGetChangesRequest(Version lastSeenVersion, ConfigClassSet const& configClassSet) diff --git a/fdbserver/ConfigBroadcaster.actor.cpp b/fdbserver/ConfigBroadcaster.actor.cpp index 6810a11fa5..29b3e369f3 100644 --- a/fdbserver/ConfigBroadcaster.actor.cpp +++ b/fdbserver/ConfigBroadcaster.actor.cpp @@ -134,7 +134,7 @@ class ConfigBroadcasterImpl { template void sendChangesReply(ConfigBroadcastFollowerGetChangesRequest const& req, Changes const& changes) const { ASSERT_LT(req.lastSeenVersion, mostRecentVersion); - ConfigFollowerGetChangesReply reply; + ConfigBroadcastFollowerGetChangesReply reply; reply.mostRecentVersion = mostRecentVersion; for (const auto& versionedMutation : changes) { if (versionedMutation.version > req.lastSeenVersion && diff --git a/fdbserver/LocalConfiguration.actor.cpp b/fdbserver/LocalConfiguration.actor.cpp index 72285601bf..21b8c373cf 100644 --- a/fdbserver/LocalConfiguration.actor.cpp +++ b/fdbserver/LocalConfiguration.actor.cpp @@ -252,7 +252,7 @@ class LocalConfigurationImpl { ConfigBroadcastFollowerInterface broadcaster) { loop { try { - state ConfigFollowerGetChangesReply changesReply = + state ConfigBroadcastFollowerGetChangesReply changesReply = wait(broadcaster.getChanges.getReply(ConfigBroadcastFollowerGetChangesRequest{ self->lastSeenVersion, self->configKnobOverrides.getConfigClassSet() })); TraceEvent(SevDebug, "LocalConfigGotChanges", self->id); // TODO: Add more fields