libfoedus-core
FOEDUS Core Library
|
Independent utility methods/classes for hashination, or hash functions. More...
Independent utility methods/classes for hashination, or hash functions.
So far we use xxhash as a static library.
Definition in file hash_hashinate.hpp.
#include <stdint.h>
#include <cstring>
#include <iosfwd>
#include "foedus/compiler.hpp"
#include "foedus/cxx11.hpp"
#include "foedus/storage/hash/fwd.hpp"
#include "foedus/storage/hash/hash_id.hpp"
Go to the source code of this file.
Classes | |
struct | foedus::storage::hash::BloomFilterFingerprint |
A fingerprint for bloom filter in each HashDataPage. More... | |
struct | foedus::storage::hash::DataPageBloomFilter |
To quickly check whether a HashDataPage might contain a specific hash value, we maintain a non-counting bloom filter in each page. More... | |
union | foedus::storage::hash::IntermediateRoute |
Compactly represents the route of intermediate pages to reach the given hash bin. 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. | |
Functions | |
HashValue | foedus::storage::hash::hashinate (const void *key, uint16_t key_length) |
Calculates hash value for general input. More... | |
template<typename T > | |
HashValue | foedus::storage::hash::hashinate (T key) |
Calculates hash value for a primitive type. More... | |
Variables | |
const uint64_t | foedus::storage::hash::kXxhashKeySeed = 0x3f119e0435262a17ULL |
Default seed value used for xxhash's xxh32/64 to hashinate keys. More... | |
const uint16_t | foedus::storage::hash::kHashDataPageBloomFilterBytes = 64 |
Byte size of bloom filter in each HashDataPage. More... | |
const uint16_t | foedus::storage::hash::kHashDataPageBloomFilterBits = kHashDataPageBloomFilterBytes * 8 |
Bit size of bloom filter in each HashDataPage. More... | |
const uint8_t | foedus::storage::hash::kHashDataPageBloomFilterIndexSize = 9U |
How many bits we need in order to represent an index in bloom filter in each HashDataPage. More... | |
const HashValue | foedus::storage::hash::kHashDataPageBloomFilterIndexMask = (1U << kHashDataPageBloomFilterIndexSize) - 1U |
const uint8_t | foedus::storage::hash::kHashDataPageBloomFilterHashes = 3 |
Number of hash functions (k) of bloom filter in each HashDataPage. More... | |