libfoedus-core
FOEDUS Core Library
|
Definitions of IDs in this package and a few related constant values. More...
Definitions of IDs in this package and a few related constant values.
Definition in file masstree_id.hpp.
#include <stdint.h>
#include <cstring>
#include <limits>
#include "foedus/compiler.hpp"
#include "foedus/assorted/endianness.hpp"
#include "foedus/storage/storage_id.hpp"
Go to the source code of this file.
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. | |
Typedefs | |
typedef uint8_t | foedus::storage::masstree::Layer |
Represents the depth of a B-trie layer. More... | |
typedef uint8_t | foedus::storage::masstree::InLayerLevel |
Represents the depth of a B-tree node in a B-trie layer. More... | |
typedef uint16_t | foedus::storage::masstree::KeyLength |
Represents a byte-length of a key in this package. More... | |
typedef uint16_t | foedus::storage::masstree::PayloadLength |
Represents a byte-length of a payload in this package. More... | |
typedef uint16_t | foedus::storage::masstree::DataOffset |
Byte-offset in a page. More... | |
typedef uint16_t | foedus::storage::masstree::SlotIndex |
Index of a record in a (border) page. More... | |
typedef uint64_t | foedus::storage::masstree::KeySlice |
Each key slice is an 8-byte integer. More... | |
Functions | |
template<typename T > | |
KeySlice | foedus::storage::masstree::normalize_primitive (T value) |
Order-preserving normalization for primitive key types. More... | |
template<typename T > | |
T | foedus::storage::masstree::denormalize_primitive (KeySlice value) |
Opposite of normalize_primitive(). More... | |
KeySlice | foedus::storage::masstree::normalize_be_bytes_full_aligned (const void *be_bytes) |
Convert an aligned big-endian byte array of at least 8-bytes-length to KeySlice. More... | |
KeySlice | foedus::storage::masstree::normalize_be_bytes_full (const void *be_bytes) |
Convert a big-endian byte array of at least 8-bytes-length to KeySlice. More... | |
KeySlice | foedus::storage::masstree::normalize_be_bytes_fragment (const void *be_bytes, uint32_t length) |
Convert a big-endian byte array of given length to KeySlice. More... | |
KeySlice | foedus::storage::masstree::slice_key (const void *be_bytes, KeyLength slice_length) |
Extract a part of a big-endian byte array of given length as KeySlice. More... | |
KeySlice | foedus::storage::masstree::slice_layer (const void *be_bytes, KeyLength key_length, Layer current_layer) |
Extract a part of a big-endian byte array of given length as KeySlice. More... | |
uint16_t | foedus::storage::masstree::count_common_slices (const void *left, const void *right, uint16_t max_slices) |
Returns the number of 8-byte slices that the two strings share as prefix. More... | |
bool | foedus::storage::masstree::is_key_aligned_and_zero_padded (const char *key, KeyLength key_length) |
Returns if the given key is 8-bytes aligned and also zero-padded to 8-bytes for easier slicing (which most of our code does). More... | |
Variables | |
const Layer | foedus::storage::masstree::kMaxLayer = 63U |
Maximum value for Layer. More... | |
const InLayerLevel | foedus::storage::masstree::kMaxSaneInLayerLevel = 15U |
If InLayerLevel exceeds this value, there must be something wrong. More... | |
const KeyLength | foedus::storage::masstree::kMaxKeyLength = 1024U |
Max length of a key. More... | |
const KeyLength | foedus::storage::masstree::kInitiallyNextLayer = 0xFFFFU |
A special key length value that denotes the record in a border page was initially a next-layer pointer, thus the record has no suffix region. More... | |
const PayloadLength | foedus::storage::masstree::kMaxPayloadLength = 1024U |
Max length of a payload. More... | |
const uint64_t | foedus::storage::masstree::kSliceLen = sizeof(KeySlice) |
Shorthand for sizeof(KeySlice). More... | |
const KeySlice | foedus::storage::masstree::kInfimumSlice = 0 |
const KeySlice | foedus::storage::masstree::kSupremumSlice = 0xFFFFFFFFFFFFFFFFULL |
const uint32_t | foedus::storage::masstree::kCommonPageHeaderSize = 80U |
Size of the base page class (MasstreePage), which is the common header for intermediate and border pages placed at the beginning. More... | |
const uint32_t | foedus::storage::masstree::kBorderPageAdditionalHeaderSize = 8U |
Misc header attributes specific to MasstreeBorderPage placed after the common header. More... | |
const uint32_t | foedus::storage::masstree::kBorderPageSlotSize = 32U |
Byte size of one slot in MasstreeBorderPage excluding slice information. More... | |
const SlotIndex | foedus::storage::masstree::kBorderPageMaxSlots |
Maximum number of slots in one MasstreeBorderPage. More... | |
const uint32_t | foedus::storage::masstree::kBorderPageDataPartSize |
Byte size of the record data part (data_) in MasstreeBorderPage. More... | |
const DataOffset | foedus::storage::masstree::kBorderPageDataPartOffset |
Offset of data_ member in MasstreeBorderPage. More... | |