1 #ifndef __LOGARCHIVE_SCANNER_H 2 #define __LOGARCHIVE_SCANNER_H 40 static_assert(
sizeof(
MergeInput) == 32,
"Misaligned MergeInput");
56 void openForMerge(Iter begin, Iter end);
66 std::vector<MergeInput>::iterator
heapEnd;
85 auto& inputs = _mergeInputVector;
87 for (Iter it = begin; it != end; it++) {
92 inputs.push_back(input);
95 heapBegin = inputs.begin();
96 auto it = inputs.rbegin();
97 while (it != inputs.rend()) {
98 constexpr
PageID startPID = 0;
99 if (it->open(startPID)) {
103 inputs.erase(it.base());
107 heapEnd = inputs.end();
111 #endif // __LOGARCHIVE_SCANNER_H PageID prevPID
Definition: logarchive_scanner.h:72
static thread_local std::vector< MergeInput > _mergeInputVector
Definition: logarchive_scanner.h:62
static const lsn_t null
Definition: lsn.h:371
shared_ptr< ArchiveIndex > archIndex
Definition: archstats.cpp:5
Definition: logarchive_scanner.h:42
Encapsulates all file and I/O operations on the log archive.
Definition: logarchive_index.h:94
void openForMerge(Iter begin, Iter end)
Definition: logarchive_scanner.h:82
Represents a transactional log record.
Definition: logrec.h:143
std::vector< MergeInput >::iterator heapEnd
Definition: logarchive_scanner.h:66
uint32_t PageID
Definition: basics.h:45
bool singlePage
Definition: logarchive_scanner.h:74
#define w_assert0(x)
Default assert/debug level is 0.
Definition: w_base.h:175
lsn_t prevLSN
Definition: logarchive_scanner.h:70
Log Sequence Number. See Log Sequence Numbers (LSN).
Definition: lsn.h:243
std::shared_ptr< ArchiveIndex > archIndex
Definition: logarchive_scanner.h:68
Definition: logarchive_index.h:35
std::vector< MergeInput >::iterator heapBegin
Definition: logarchive_scanner.h:64