20 #include <glog/logging.h>
35 #define CHECK_AND_ASSERT(x) do { ASSERT_ND(x); if (!(x)) \
36 return ERROR_STACK(kErrorCodeStrHashFailedVerification); } while (0)
100 page->assert_entries_impl();
102 uint16_t records = page->get_record_count();
113 page =
reinterpret_cast<HashDataPage*
>(resolver.resolve_offset(next));
Represents a pointer to another page (usually a child page).
bool is_retired() const __attribute__((always_inline))
const HashBinRange & get_bin_range() const
xct::RwLockableXctId tid_
TID of the record.
Root package of FOEDUS (Fast Optimistic Engine for Data Unification Services).
Represents one thread running on one NUMA core.
const GlobalVolatilePageResolver & get_global_volatile_page_resolver() const
Returns the page resolver to convert volatile page ID to page pointer.
Represents a pointer to a volatile page with modification count for preventing ABA.
Brings error stacktrace information as return value of functions.
XctId xct_id_
the second 64bit: Persistent status part of TID.
Engine * get_engine() const
VolatilePagePointer volatile_pointer_
bool is_moved() const __attribute__((always_inline))
ErrorStack verify_single_thread(Engine *engine)
These are defined in hash_storage_verify.cpp.
HashStorageControlBlock * control_block_
The shared data on shared memory that has been initialized in some SOC or master engine.
Database engine object that holds all resources and provides APIs.
ErrorStack verify_single_thread_data(Engine *engine, HashDataPage *head)
Epoch get_epoch() const __attribute__((always_inline))
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
HashBin end_
Exclusive end of the range.
Represents an intermediate page in Hashtable Storage.
ErrorStack verify_single_thread_intermediate(Engine *engine, HashIntermediatePage *page)
uint64_t HashBin
Represents a bin of a hash value.
Represents an individual data page in Hashtable Storage.
#define CHECK_ERROR(x)
This macro calls x and checks its returned value.
const ErrorStack kRetOk
Normal return value for no-error case.
bool is_being_written() const __attribute__((always_inline))
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.
bool is_locked() const __attribute__((always_inline))
Definitions of IDs in this package and a few related constant values.
DualPagePointer & get_pointer(uint16_t index)
memory::EngineMemory * get_memory_manager() const
See Memory Manager.
#define CHECK_AND_ASSERT(x)
bool is_keylocked() const __attribute__((always_inline))