18 #ifndef FOEDUS_STORAGE_HASH_HASH_ID_HPP_
19 #define FOEDUS_STORAGE_HASH_HASH_ID_HPP_
58 for (uint8_t i = 0; i < exponent; ++i) {
79 kFanout64 * kFanout64 * kFanout64 *
kFanout64,
80 kFanout64 * kFanout64 * kFanout64 * kFanout64 *
kFanout64,
81 kFanout64 * kFanout64 * kFanout64 * kFanout64 * kFanout64 *
kFanout64,
82 kFanout64 * kFanout64 * kFanout64 * kFanout64 * kFanout64 * kFanout64 *
kFanout64,
83 kFanout64 * kFanout64 * kFanout64 * kFanout64 * kFanout64 * kFanout64 * kFanout64 *
kFanout64,
92 for (level = 1U; kHashMaxBins[level] < bins; ++level) {
214 #endif // FOEDUS_STORAGE_HASH_HASH_ID_HPP_
Represents a pointer to another page (usually a child page).
Definitions of IDs in this package and a few related constant values.
bool contains(const HashBinRange &other) const
Root package of FOEDUS (Fast Optimistic Engine for Data Unification Services).
const DataPageSlotIndex kSlotNotFound
uint8_t bins_to_level(uint64_t bins)
uint16_t PayloadLength
Represents a byte-length of a payload in this package.
bool contains(HashBin hash) const
const uint8_t kHashMaxLevels
Max level of intermediate pages.
uint64_t fanout_power(uint8_t exponent)
Represents a range of hash bins in a hash storage, such as what an intermediate page is responsible f...
HashBin begin_
Inclusive beginning of the range.
friend std::ostream & operator<<(std::ostream &o, const HashBinRange &v)
this one is NOT header-only.
const uint16_t kHashIntermediatePageHeaderSize
Byte size of header in an intermediate page of hash storage.
uint16_t DataPageSlotIndex
HashBin end_
Exclusive end of the range.
const uint8_t kHashMinBinBits
Minimum number allowed for bin-bits.
uint64_t HashBin
Represents a bin of a hash value.
bool operator==(const HashBinRange &other) const
uint16_t KeyLength
Represents a byte-length of a key in this package.
const uint16_t kHashDataPageHeaderSize
Byte size of header in data page of hash storage.
const uint64_t kFanout64
just to write the following concisely
const HashBin kInvalidHashBin
This value or larger never appears as a valid HashBin.
const uint8_t kHashIntermediatePageFanout
Number of pointers in an intermediate page of hash storage.
const uint64_t kHashMaxBins[]
kHashTotalBins[n] gives the maximum number of hash bins n-level hash can hold.
bool operator!=(const HashBinRange &other) const
const uint8_t kHashMaxBinBits
Maximum number allowed for bin-bits.
HashBinRange(HashBin begin, HashBin end)
const uint16_t kHashDataPageDataSize
Body data byte size in data page of hash storage.
const uint16_t kPageSize
A constant defining the page size (in bytes) of both snapshot pages and volatile pages.
uint64_t HashValue
Represents a full 64-bit hash value calculated from a key.