| 104 | } |
| 105 | |
| 106 | PageRange Checkpointer::serializeMetadataSnapshot(const catalog::Catalog& catalog, |
| 107 | StorageManager& storageManager) { |
| 108 | auto metadataWriter = |
| 109 | std::make_shared<common::InMemFileWriter>(*MemoryManager::Get(clientContext)); |
| 110 | common::Serializer metadataSerializer(metadataWriter); |
| 111 | const transaction::Transaction snapshotTxn(transaction::TransactionType::CHECKPOINT, |
| 112 | transaction::Transaction::DUMMY_TRANSACTION_ID, snapshotTS); |
| 113 | storageManager.serialize(catalog, snapshotTxn, metadataSerializer); |
| 114 | |
| 115 | auto& pageManager = *storageManager.getDataFH()->getPageManager(); |
| 116 | const auto pagesForPageManager = pageManager.estimatePagesNeededForSerialize(); |
| 117 | auto pageAllocator = storageManager.getDataFH()->getPageManager(); |
| 118 | const auto allocatedPages = pageAllocator->allocatePageRange( |
| 119 | metadataWriter->getNumPagesToFlush() + pagesForPageManager); |
| 120 | pageManager.serialize(metadataSerializer); |
| 121 | |
| 122 | metadataWriter->flush(allocatedPages, pageAllocator->getDataFH(), |
| 123 | storageManager.getShadowFile()); |
| 124 | return allocatedPages; |
| 125 | } |
| 126 | |
| 127 | PageRange Checkpointer::serializeMetadata(const catalog::Catalog& catalog, |
| 128 | StorageManager& storageManager) { |
nothing calls this directly
no test coverage detected