48 #define EXP_HASHINATE(x) template HashValue hashinate< x >(x key)
51 template HashValue hashinate< __uint128_t >(__uint128_t key);
52 template HashValue hashinate< __int128_t >(__int128_t key);
56 o <<
"<Fingerprint indexes=\"";
66 for (uint8_t i = 0; i < 8U; ++i) {
74 o <<
"<DataPageBloomFilter>" << std::endl;
77 o <<
" <Bytes row=\"" << i <<
"\">";
78 for (uint16_t j = i * 8U; j < (i + 1U) * 8U && j < kHashDataPageBloomFilterBytes; ++j) {
81 o <<
"</Bytes>" << std::endl;
83 o <<
"</DataPageBloomFilter>";
uint16_t indexes_[kHashDataPageBloomFilterHashes]
Root package of FOEDUS (Fast Optimistic Engine for Data Unification Services).
const uint64_t kXxhashKeySeed
Default seed value used for xxhash's xxh32/64 to hashinate keys.
const uint8_t kHashDataPageBloomFilterHashes
Number of hash functions (k) of bloom filter in each HashDataPage.
Independent utility methods/classes for hashination, or hash functions.
HashValue hashinate(const void *key, uint16_t key_length)
Calculates hash value for general input.
std::ostream & operator<<(std::ostream &o, const HashCombo &v)
const uint16_t kHashDataPageBloomFilterBytes
Byte size of bloom filter in each HashDataPage.
uint8_t values_[kHashDataPageBloomFilterBytes]
A fingerprint for bloom filter in each HashDataPage.
Convenient way of writing hex integers to stream.
To quickly check whether a HashDataPage might contain a specific hash value, we maintain a non-counti...
#define INSTANTIATE_ALL_NUMERIC_TYPES(M)
INSTANTIATE_ALL_TYPES minus std::string.
uint64_t HashValue
Represents a full 64-bit hash value calculated from a key.