libfoedus-core
FOEDUS Core Library
masstree_page_impl.hpp File Reference
#include <stdint.h>
#include <algorithm>
#include <cstring>
#include <iosfwd>
#include "foedus/assert_nd.hpp"
#include "foedus/compiler.hpp"
#include "foedus/epoch.hpp"
#include "foedus/error_code.hpp"
#include "foedus/fwd.hpp"
#include "foedus/assorted/assorted_func.hpp"
#include "foedus/assorted/cacheline.hpp"
#include "foedus/memory/fwd.hpp"
#include "foedus/storage/page.hpp"
#include "foedus/storage/record.hpp"
#include "foedus/storage/storage_id.hpp"
#include "foedus/storage/masstree/fwd.hpp"
#include "foedus/storage/masstree/masstree_id.hpp"
#include "foedus/thread/fwd.hpp"
#include "foedus/xct/fwd.hpp"
#include "foedus/xct/xct_id.hpp"
Include dependency graph for masstree_page_impl.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  foedus::storage::masstree::HighFence
 Used only for debugging as this is not space efficient. More...
 
class  foedus::storage::masstree::MasstreePage
 Common base of MasstreeIntermediatePage and MasstreeBorderPage. More...
 
class  foedus::storage::masstree::MasstreeIntermediatePage
 Represents one intermediate page in Masstree Storage. More...
 
struct  foedus::storage::masstree::MasstreeIntermediatePage::MiniPage
 
class  foedus::storage::masstree::MasstreeBorderPage
 Represents one border page in Masstree Storage. More...
 
struct  foedus::storage::masstree::MasstreeBorderPage::SlotLengthPart
 A piece of Slot object that must be read/written in one-shot, meaning no one reads half-written values whether it reads old values or new values. More...
 
union  foedus::storage::masstree::MasstreeBorderPage::SlotLengthUnion
 
struct  foedus::storage::masstree::MasstreeBorderPage::Slot
 Fix-sized slot for each record, which is placed at the end of data region. More...
 
struct  foedus::storage::masstree::MasstreeBorderPage::FindKeyForReserveResult
 return value for find_key_for_reserve(). More...
 
struct  foedus::storage::masstree::MasstreeIntermediatePointerIterator
 Handy iterator for MasstreeIntermediate. 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::masstree
 Masstree Storage, 64-bit B-tries with internal B-trees.
 

Functions

KeyLength foedus::storage::masstree::calculate_suffix_length (KeyLength remainder_length) __attribute__((always_inline))
 
KeyLength foedus::storage::masstree::calculate_suffix_length_aligned (KeyLength remainder_length) __attribute__((always_inline))
 
void foedus::storage::masstree::_dummy_static_size_check__COUNTER__ ()
 

Variables

const uint16_t foedus::storage::masstree::kMaxIntermediateSeparators = 9U
 Max number of separators stored in the first level of intermediate pages. More...
 
const uint16_t foedus::storage::masstree::kMaxIntermediateMiniSeparators = 15U
 Max number of separators stored in the second level of intermediate pages. More...
 
const uint32_t foedus::storage::masstree::kMaxIntermediatePointers = (kMaxIntermediateSeparators + 1U) * (kMaxIntermediateMiniSeparators + 1U)
 Max number of pointers (if completely filled) stored in an intermediate pages. More...