MCPcopy Create free account
hub / github.com/LadybugDB/ladybug / writeDatabaseHeaderToStorage

Function writeDatabaseHeaderToStorage

src/storage/checkpointer.cpp:29–46  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

27namespace {
28
29void writeDatabaseHeaderToStorage(main::ClientContext& clientContext, const DatabaseHeader& header,
30 StorageManager& storageManager) {
31 auto headerWriter =
32 std::make_shared<common::InMemFileWriter>(*MemoryManager::Get(clientContext));
33 common::Serializer headerSerializer(headerWriter);
34 header.serialize(headerSerializer);
35 auto headerPage = headerWriter->getPage(0);
36
37 auto dataFH = storageManager.getDataFH();
38 auto& shadowFile = storageManager.getShadowFile();
39 auto shadowHeader = ShadowUtils::createShadowVersionIfNecessaryAndPinPage(
40 common::StorageConstants::DB_HEADER_PAGE_IDX, true /* skipReadingOriginalPage */, *dataFH,
41 shadowFile);
42 memcpy(shadowHeader.frame, headerPage.data(), common::LBUG_PAGE_SIZE);
43 shadowFile.getShadowingFH().unpinPage(shadowHeader.shadowPage);
44
45 storageManager.setDatabaseHeader(std::make_unique<DatabaseHeader>(header));
46}
47
48void logCheckpointAndApplyShadowPagesForStorage(main::ClientContext& clientContext,
49 StorageManager& storageManager, bool walRotated) {

Callers 2

writeDatabaseHeaderMethod · 0.85

Calls 6

unpinPageMethod · 0.80
setDatabaseHeaderMethod · 0.80
serializeMethod · 0.45
getPageMethod · 0.45
getDataFHMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected