libfoedus-core
FOEDUS Core Library
|
Compactly represents the route to reach the given offset. More...
Compactly represents the route to reach the given offset.
Fanout cannot exceed 256 (as empty-payload is not allowed, minimal entry size is 16 bytes in both leaf and interior, 4096/16=256), uint8_t is enough to represent the route. Also, interior page always has a big fanout close to 256, so 8 levels are more than enough.
Definition at line 41 of file array_route.hpp.
#include <array_route.hpp>
Public Member Functions | |
ArrayRange | calculate_page_range (uint8_t page_level, uint8_t total_levels, uint16_t payload_size, ArrayOffset array_size) const |
bool | operator== (const LookupRoute &rhs) const |
bool | operator!= (const LookupRoute &rhs) const |
bool | operator< (const LookupRoute &rhs) const |
bool | operator<= (const LookupRoute &rhs) const |
Public Attributes | |
uint64_t | word |
This is a 64bit data. More... | |
uint8_t | route [8] |
[0] means record ordinal in leaf, [1] in its parent page, [2]... More... | |
|
inline |
Definition at line 179 of file array_route.hpp.
References ASSERT_ND, foedus::storage::array::ArrayRange::begin_, foedus::storage::array::ArrayRange::end_, foedus::storage::array::kInteriorFanout, route, and foedus::storage::array::to_records_in_leaf().
|
inline |
Definition at line 57 of file array_route.hpp.
References word.
|
inline |
Definition at line 58 of file array_route.hpp.
References route.
|
inline |
Definition at line 68 of file array_route.hpp.
|
inline |
Definition at line 56 of file array_route.hpp.
References word.
uint8_t foedus::storage::array::LookupRoute::route[8] |
[0] means record ordinal in leaf, [1] in its parent page, [2]...
[levels - 1] is the ordinal in root page.
Definition at line 48 of file array_route.hpp.
Referenced by calculate_page_range(), foedus::storage::array::LookupRouteFinder::find_route(), foedus::storage::array::LookupRouteFinder::find_route_and_switch(), foedus::storage::array::ArrayStoragePimpl::lookup_for_read_batch(), foedus::storage::array::ArrayStoragePimpl::lookup_for_write_batch(), and operator<().
uint64_t foedus::storage::array::LookupRoute::word |
This is a 64bit data.
Definition at line 43 of file array_route.hpp.
Referenced by foedus::storage::array::LookupRouteFinder::find_route(), foedus::storage::array::LookupRouteFinder::find_route_and_switch(), operator!=(), and operator==().