|
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... | |