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

Function updatePersistentPopped

fdbserver/TLogServer.actor.cpp:856–878  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

854}
855
856void updatePersistentPopped(TLogData* self, Reference<LogData> logData, Reference<LogData::TagData> data) {
857 if (!data->poppedRecently)
858 return;
859 self->persistentData->set(
860 KeyValueRef(persistTagPoppedKey(logData->logId, data->tag), persistTagPoppedValue(data->popped)));
861 data->poppedRecently = false;
862 data->persistentPopped = data->popped;
863
864 if (data->nothingPersistent)
865 return;
866
867 if (logData->shouldSpillByValue(data->tag)) {
868 self->persistentData->clear(KeyRangeRef(persistTagMessagesKey(logData->logId, data->tag, Version(0)),
869 persistTagMessagesKey(logData->logId, data->tag, data->popped)));
870 } else {
871 self->persistentData->clear(KeyRangeRef(persistTagMessageRefsKey(logData->logId, data->tag, Version(0)),
872 persistTagMessageRefsKey(logData->logId, data->tag, data->popped)));
873 }
874
875 if (data->popped > logData->persistentDataVersion) {
876 data->nothingPersistent = true;
877 }
878}
879
880ACTOR Future<Void> updatePoppedLocation(TLogData* self, Reference<LogData> logData, Reference<LogData::TagData> data) {
881 // For anything spilled by value, we do not need to track its popped location.

Calls 10

VersionEnum · 0.85
shouldSpillByValueMethod · 0.80
persistTagPoppedKeyFunction · 0.70
persistTagPoppedValueFunction · 0.70
persistTagMessagesKeyFunction · 0.70
persistTagMessageRefsKeyFunction · 0.70
setMethod · 0.65
clearMethod · 0.65
KeyValueRefClass · 0.50
KeyRangeRefClass · 0.50

Tested by

no test coverage detected