OmniSciDB
a5dc49c757
|
The MultiPage stores versions of the same logical page in a deque. More...
#include <Page.h>
Public Member Functions | |
MultiPage (size_t pageSizeIn) | |
Constructor. More... | |
~MultiPage () | |
Destructor – purges all pages. More... | |
EpochedPage | current () const |
Returns a reference to the most recent version of the page. More... | |
void | push (const Page &page, const int epoch) |
Pushes a new page with epoch value. More... | |
void | pop () |
Purges the oldest Page. More... | |
std::vector< EpochedPage > | freePagesBeforeEpoch (const int32_t target_epoch, const int32_t current_epoch) |
Public Attributes | |
size_t | pageSize |
std::deque< EpochedPage > | pageVersions |
The MultiPage stores versions of the same logical page in a deque.
The purpose of MultiPage is to support storing multiple versions of the same page, which may be located in different locations and in different files. Associated with each version of a page is an "epoch" value, which is a temporal reference.
|
inline |
|
inline |
Destructor – purges all pages.
Definition at line 87 of file Page.h.
References pageVersions, and pop().
|
inline |
Returns a reference to the most recent version of the page.
Definition at line 94 of file Page.h.
References logger::FATAL, LOG, and pageVersions.
Referenced by File_Namespace::FileBuffer::initMetadataAndPageDataSize().
|
inline |
Definition at line 117 of file Page.h.
References CHECK_LE, and pageVersions.
Referenced by File_Namespace::FileBuffer::freePagesBeforeEpochForMultiPage().
|
inline |
Purges the oldest Page.
Definition at line 110 of file Page.h.
References logger::FATAL, LOG, and pageVersions.
Referenced by File_Namespace::FileBuffer::freeMetadataPages(), and ~MultiPage().
|
inline |
Pushes a new page with epoch value.
Definition at line 102 of file Page.h.
References CHECK_GT, and pageVersions.
Referenced by File_Namespace::FileBuffer::addNewMultiPage(), File_Namespace::FileBuffer::FileBuffer(), File_Namespace::FileMgr::init(), and File_Namespace::FileBuffer::writeMetadata().
std::deque<EpochedPage> File_Namespace::MultiPage::pageVersions |
Definition at line 81 of file Page.h.
Referenced by current(), File_Namespace::FileBuffer::freeMetadataPages(), File_Namespace::FileBuffer::freePagesBeforeEpoch(), freePagesBeforeEpoch(), pop(), push(), and ~MultiPage().