libfoedus-core
FOEDUS Core Library
sequential_id.hpp File Reference

Definitions of IDs in this package and a few related constant values. More...

Detailed Description

Definitions of IDs in this package and a few related constant values.

Definition in file sequential_id.hpp.

#include <stdint.h>
#include "foedus/epoch.hpp"
#include "foedus/storage/storage_id.hpp"
Include dependency graph for sequential_id.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  foedus::storage::sequential::HeadPagePointer
 Each pointer to a snapshot head page comes with a bit more information to help reading. More...
 

Namespaces

 foedus
 Root package of FOEDUS (Fast Optimistic Engine for Data Unification Services).
 
 foedus::storage
 Storage Manager, which implements a couple of key/value stores.
 
 foedus::storage::sequential
 Sequential Storage, an append/scan only data structure.
 

Functions

void foedus::storage::sequential::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. More...
 

Variables

const uint16_t foedus::storage::sequential::kMaxSlots = 1 << 15
 We have to represent the record count in 15 bits. More...
 
const uint16_t foedus::storage::sequential::kHeaderSize = 64
 Byte size of header in each data page of sequential storage. More...
 
const uint16_t foedus::storage::sequential::kDataSize = foedus::storage::kPageSize - kHeaderSize
 Byte size of data region in each data page of sequential storage. More...
 
const uint16_t foedus::storage::sequential::kMaxPayload = kDataSize
 Payload must be shorter than this length. More...
 
const uint16_t foedus::storage::sequential::kRootPageHeaderSize = 56
 Byte size of header in each root page of sequential storage. More...
 
const uint16_t foedus::storage::sequential::kRootPageMaxHeadPointers = (foedus::storage::kPageSize - kRootPageHeaderSize) / sizeof(HeadPagePointer)
 Maximum number of head pointers in one root page. More...
 
const uint16_t foedus::storage::sequential::kRootPageDataSize = foedus::storage::kPageSize - kRootPageHeaderSize
 Byte size of data region in each root page of sequential storage. More...
 
const uint16_t foedus::storage::sequential::kPointerPageCount = 1U << 6
 Each poiner page can contain 2^10 pointers (as the node is implicit, PagePoolOffset suffices) and we can have at most 2^16 cores. More...
 
const uint16_t foedus::storage::sequential::kPointersPerPage = 1U << 10