18 #ifndef FOEDUS_STORAGE_SEQUENTIAL_SEQUENTIAL_ID_HPP_
19 #define FOEDUS_STORAGE_SEQUENTIAL_SEQUENTIAL_ID_HPP_
33 namespace sequential {
116 #endif // FOEDUS_STORAGE_SEQUENTIAL_SEQUENTIAL_ID_HPP_
Definitions of IDs in this package and a few related constant values.
Root package of FOEDUS (Fast Optimistic Engine for Data Unification Services).
SnapshotPagePointer page_id_
ID of the page that begins the linked list.
Epoch from_epoch_
Inclusive beginning of epochs in the pointed pages.
const uint16_t kRootPageMaxHeadPointers
Maximum number of head pointers in one root page.
Each pointer to a snapshot head page comes with a bit more information to help reading.
void get_pointer_page_and_index(uint16_t thread_id, uint16_t *page, uint16_t *index)
Calculate the page/index of the thread-private head/tail pointer.
const uint16_t kHeaderSize
Byte size of header in each data page of sequential storage.
uint64_t SnapshotPagePointer
Page ID of a snapshot page.
const uint16_t kPointerPageCount
Each poiner page can contain 2^10 pointers (as the node is implicit, PagePoolOffset suffices) and we ...
uint64_t page_count_
In a sequential storage, all pages from the head page is guaranteed to be contiguous (that's how Sequ...
const uint16_t kPointersPerPage
const uint16_t kDataSize
Byte size of data region in each data page of sequential storage.
const uint16_t kMaxPayload
Payload must be shorter than this length.
Epoch to_epoch_
Exclusive end of epochs in the pointed pages.
const uint16_t kRootPageHeaderSize
Byte size of header in each root page of sequential storage.
const uint16_t kRootPageDataSize
Byte size of data region in each root page of sequential storage.
const uint16_t kPageSize
A constant defining the page size (in bytes) of both snapshot pages and volatile pages.
const uint16_t kMaxSlots
We have to represent the record count in 15 bits.