MCPcopy Create free account
hub / github.com/apple/foundationdb / updateLiveCommittedVersion

Function updateLiveCommittedVersion

fdbserver/masterserver.actor.cpp:245–267  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

243}
244
245void updateLiveCommittedVersion(Reference<MasterData> self, ReportRawCommittedVersionRequest req) {
246 self->minKnownCommittedVersion = std::max(self->minKnownCommittedVersion, req.minKnownCommittedVersion);
247
248 if (req.version > self->liveCommittedVersion.get()) {
249 if (SERVER_KNOBS->ENABLE_VERSION_VECTOR && req.writtenTags.present()) {
250 // TraceEvent("Received ReportRawCommittedVersionRequest").detail("Version",req.version);
251 int8_t primaryLocality =
252 SERVER_KNOBS->ENABLE_VERSION_VECTOR_HA_OPTIMIZATION ? self->locality : tagLocalityInvalid;
253 self->ssVersionVector.setVersion(req.writtenTags.get(), req.version, primaryLocality);
254 self->versionVectorTagUpdates.addMeasurement(req.writtenTags.get().size());
255 }
256 auto curTime = now();
257 // add debug here to change liveCommittedVersion to time bound of now()
258 debug_advanceVersionTimestamp(self->liveCommittedVersion.get(), curTime + CLIENT_KNOBS->MAX_VERSION_CACHE_LAG);
259 // also add req.version but with no time bound
260 debug_advanceVersionTimestamp(req.version, std::numeric_limits<double>::max());
261 self->databaseLocked = req.locked;
262 self->proxyMetadataVersion = req.metadataVersion;
263 // Note the set call switches context to any waiters on liveCommittedVersion before continuing.
264 self->liveCommittedVersion.set(req.version);
265 }
266 ++self->reportLiveCommittedVersionRequests;
267}
268
269ACTOR Future<Void> waitForPrev(Reference<MasterData> self, ReportRawCommittedVersionRequest req) {
270 state double startTime = now();

Callers 2

Future<Void> waitForPrevFunction · 0.85

Calls 8

nowFunction · 0.85
getMethod · 0.65
setMethod · 0.65
presentMethod · 0.45
setVersionMethod · 0.45
addMeasurementMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected