libfoedus-core
FOEDUS Core Library
hash_id.hpp File Reference

Definitions of IDs in this package and a few related constant values. More...

Detailed Description

Definitions of IDs in this package and a few related constant values.

Definition in file hash_id.hpp.

#include <stdint.h>
#include <iosfwd>
#include "foedus/cxx11.hpp"
#include "foedus/storage/storage_id.hpp"
Include dependency graph for hash_id.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  foedus::storage::hash::HashBinRange
 Represents a range of hash bins in a hash storage, such as what an intermediate page is responsible for. 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::hash
 Hashtable Storage, a concurrent hashtable.
 

Typedefs

typedef uint64_t foedus::storage::hash::HashValue
 Represents a full 64-bit hash value calculated from a key. More...
 
typedef uint64_t foedus::storage::hash::HashBin
 Represents a bin of a hash value. More...
 
typedef uint16_t foedus::storage::hash::DataPageSlotIndex
 
typedef uint16_t foedus::storage::hash::KeyLength
 Represents a byte-length of a key in this package. More...
 
typedef uint16_t foedus::storage::hash::PayloadLength
 Represents a byte-length of a payload in this package. More...
 

Functions

uint64_t foedus::storage::hash::fanout_power (uint8_t exponent)
 
uint8_t foedus::storage::hash::bins_to_level (uint64_t bins)
 

Variables

const uint16_t foedus::storage::hash::kHashIntermediatePageHeaderSize = 64
 Byte size of header in an intermediate page of hash storage. More...
 
const uint8_t foedus::storage::hash::kHashIntermediatePageFanout
 Number of pointers in an intermediate page of hash storage. More...
 
const uint64_t foedus::storage::hash::kFanout64 = kHashIntermediatePageFanout
 just to write the following concisely More...
 
const uint64_t foedus::storage::hash::kHashMaxBins []
 kHashTotalBins[n] gives the maximum number of hash bins n-level hash can hold. More...
 
const uint8_t foedus::storage::hash::kHashMaxLevels = 8
 Max level of intermediate pages. More...
 
const uint16_t foedus::storage::hash::kHashDataPageHeaderSize = 128
 Byte size of header in data page of hash storage. More...
 
const uint16_t foedus::storage::hash::kHashDataPageDataSize = kPageSize - kHashDataPageHeaderSize
 Body data byte size in data page of hash storage. More...
 
const uint8_t foedus::storage::hash::kHashMinBinBits = 7U
 Minimum number allowed for bin-bits. More...
 
const uint8_t foedus::storage::hash::kHashMaxBinBits = 48U
 Maximum number allowed for bin-bits. More...
 
const HashBin foedus::storage::hash::kInvalidHashBin = 1ULL << kHashMaxBinBits
 This value or larger never appears as a valid HashBin. More...
 
const DataPageSlotIndex foedus::storage::hash::kSlotNotFound = 0xFFFFU