32   o << 
"<HashIntermediatePage>";
 
   33   o << std::endl << 
"  <vaddr>" << 
assorted::Hex(reinterpret_cast<uintptr_t>(&v), 16) << 
"</vaddr>";
 
   34   o << std::endl << 
"  " << v.
header();
 
   35   o << std::endl << 
"  <level>" << 
static_cast<int>(v.
get_level()) << 
"</level>";
 
   44     o << std::endl << 
"  <Pointer index=\"" << 
static_cast<int>(i)
 
   45       << 
"\" bin_begin=\"" << (total_begin + i * interval)
 
   46       << 
"\">" << pointer << 
"</Pointer>";
 
   48   o << 
"</HashIntermediatePage>";
 
   53   o << 
"<HashDataPage>";
 
   54   o << std::endl << 
"  <vaddr>" << 
assorted::Hex(reinterpret_cast<uintptr_t>(&v), 16) << 
"</vaddr>";
 
   55   o << std::endl << v.
header();
 
   58   o << std::endl << 
"  <record_count>" << records << 
"</record_count>";
 
   59   o << std::endl << 
"  <next_page>" << v.
next_page() << 
"</next_page>";
 
   60   o << std::endl << 
"  <records>";
 
   63     o << std::endl << 
"  <record index=\"" << i
 
   67       << 
"\" offset=\"" << slot->
offset_ 
   82   o << std::endl << 
"  </records>";
 
   83   o << std::endl << 
"  <BloomFilter>" << v.bloom_filter_ << 
"</BloomFilter>";
 
   84   o << 
"</HashDataPage>";
 
  100   correct_filter.
clear();
 
  109     HashBin bin = hash >> bin_shifts;
 
  119   for (uint16_t i = 0; i < 
sizeof(correct_filter.
values_); ++i) {
 
uint8_t get_bin_shifts() const 
Represents a pointer to another page (usually a child page). 
bool is_both_null() const 
const HashBinRange & get_bin_range() const 
xct::RwLockableXctId tid_
TID of the record. 
Root package of FOEDUS (Fast Optimistic Engine for Data Unification Services). 
uint16_t payload_length_
Byte length of the payload. 
void assert_entries_impl() const 
defined in hash_page_debug.cpp. 
uint16_t get_aligned_key_length() const 
uint16_t key_length_
Byte length of key of the record. 
HashValue hash_
Full hash of the key of the record. 
const Slot * get_slot_address(DataPageSlotIndex record) const __attribute__((always_inline))
same as &get_slot(), but this is more explicit and easier to understand/maintain 
Independent utility methods/classes for hashination, or hash functions. 
void clear()
usually zero-cleared as part of a data page, but in case of specifically clearing this ...
HashValue hashinate(const void *key, uint16_t key_length)
Calculates hash value for general input. 
std::ostream & operator<<(std::ostream &o, const HashCombo &v)
Fix-sized slot for each record, which is placed at the end of data region. 
HashBin begin_
Inclusive beginning of the range. 
uint16_t DataPageSlotIndex
Equivalent to std::hex in case the stream doesn't support it. 
uint16_t physical_record_length_
Byte count this record occupies. 
uint8_t values_[kHashDataPageBloomFilterBytes]
Represents an intermediate page in Hashtable Storage. 
static BloomFilterFingerprint extract_fingerprint(HashValue fullhash)
char * record_from_offset(uint16_t offset)
uint64_t HashBin
Represents a bin of a hash value. 
void add(const BloomFilterFingerprint &fingerprint) __attribute__((always_inline))
Adds the fingerprint to this bloom filter. 
Represents an individual data page in Hashtable Storage. 
const DualPagePointer & next_page() const __attribute__((always_inline))
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...
const uint16_t kHashDataPageHeaderSize
Byte size of header in data page of hash storage. 
uint8_t get_level() const 
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. 
uint16_t get_record_count() const __attribute__((always_inline))
#define ASSERT_ND(x)
A warning-free wrapper macro of assert() that has no performance effect in release mode even when 'x'...
Definitions of IDs in this package and a few related constant values. 
DualPagePointer & get_pointer(uint16_t index)
const uint16_t kPageSize
A constant defining the page size (in bytes) of both snapshot pages and volatile pages. 
uint16_t offset_
Byte offset in data_ where this record starts. 
uint64_t HashValue
Represents a full 64-bit hash value calculated from a key.