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

Method recover

fdbserver/VersionedBTree.actor.cpp:1151–1175  ·  view source on GitHub ↗

Load an existing queue from its queue state

Source from the content-addressed store, hash-verified

1149
1150 // Load an existing queue from its queue state
1151 void recover(IPager2* p, const QueueState& qs, std::string queueName, bool loadExtents = true) {
1152 debug_printf("FIFOQueue(%s) recover from queue state %s\n", queueName.c_str(), qs.toString().c_str());
1153 pager = p;
1154 pagerError = pager->getError();
1155 name = queueName;
1156 queueID = qs.queueID;
1157 numPages = qs.numPages;
1158 numEntries = qs.numEntries;
1159 usesExtents = qs.usesExtents;
1160 tailPageNewExtent = qs.tailPageNewExtent;
1161 prevExtentEndPageID = qs.prevExtentEndPageID;
1162 pagesPerExtent = pager->getPagesPerExtent();
1163 headReader.init(this, Cursor::POP, qs.headPageID, loadExtents, false, qs.tailPageID, qs.headOffset);
1164 tailWriter.init(this,
1165 Cursor::WRITE,
1166 qs.tailPageID,
1167 true,
1168 qs.tailPageNewExtent,
1169 invalidPhysicalPageID,
1170 0,
1171 qs.prevExtentEndPageID);
1172 headWriter.init(this, Cursor::WRITE);
1173 newTailPage = invalidPhysicalPageID;
1174 debug_printf("FIFOQueue(%s) recovered\n", queueName.c_str());
1175 }
1176
1177 // Reset the head reader (this is used only for extent based remap queue after recovering the remap
1178 // queue contents via fastpath extent reads)

Callers 3

recoverFunction · 0.45
Future<Void> init_implFunction · 0.45

Calls 4

c_strMethod · 0.45
toStringMethod · 0.45
getErrorMethod · 0.45
initMethod · 0.45

Tested by

no test coverage detected