libfoedus-core
FOEDUS Core Library
|
Represents an intermediate page in Hashtable Storage. More...
Represents an intermediate page in Hashtable Storage.
This is one of the page types in hash. An intermediate page is simply a list of pointers to child pages, which might be intermediate or data pages.
Common PageHeader | HashRange (just for sanity check) | DualPagePointer | DualPagePointer | ... |
Each page simply contains kHashIntermediatePageFanout pointers to lower level.
Definition at line 64 of file hash_page_impl.hpp.
#include <hash_page_impl.hpp>
Friends | |
std::ostream & | operator<< (std::ostream &o, const HashIntermediatePage &v) |
defined in hash_page_debug.cpp. More... | |
|
delete |
|
delete |
|
inline |
Definition at line 107 of file hash_page_impl.hpp.
References ASSERT_ND, and foedus::storage::hash::HashBinRange::contains().
|
inline |
Definition at line 110 of file hash_page_impl.hpp.
References ASSERT_ND, get_level(), foedus::storage::hash::kHashMaxBins, and foedus::storage::hash::HashBinRange::length().
Referenced by foedus::storage::hash::HashStoragePimpl::create().
|
inline |
Definition at line 104 of file hash_page_impl.hpp.
Referenced by foedus::storage::hash::HashStoragePimpl::follow_page(), foedus::storage::hash::hash_data_volatile_page_init(), foedus::storage::hash::HashDataPage::initialize_volatile_page(), foedus::storage::hash::ComposedBinsMergedStream::open_path(), foedus::storage::hash::operator<<(), foedus::storage::hash::ComposedBinsMergedStream::process_a_bin(), and foedus::storage::hash::HashStoragePimpl::verify_single_thread_intermediate().
|
inline |
Definition at line 117 of file hash_page_impl.hpp.
|
inline |
Definition at line 105 of file hash_page_impl.hpp.
References foedus::storage::PageHeader::get_in_layer_level().
Referenced by assert_range(), foedus::storage::hash::HashComposer::construct_root(), foedus::storage::hash::HashStoragePimpl::debugout_single_thread_intermediate(), foedus::storage::hash::HashPartitioner::design_partition_task(), foedus::storage::hash::HashComposer::drop_volatiles(), foedus::storage::hash::HashStoragePimpl::follow_page(), foedus::storage::hash::HashStoragePimpl::follow_page_bin_head(), foedus::storage::hash::hash_data_volatile_page_init(), foedus::storage::hash::HashStoragePimpl::hcc_reset_all_temperature_stat_intermediate(), foedus::storage::hash::ComposedBinsMergedStream::init(), initialize_volatile_page(), foedus::storage::hash::HashDataPage::initialize_volatile_page(), foedus::storage::hash::HashStoragePimpl::locate_bin(), foedus::storage::hash::ComposedBinsMergedStream::open_path(), foedus::storage::hash::operator<<(), foedus::storage::hash::ComposedBinsMergedStream::process_a_bin(), release_pages_recursive(), release_pages_recursive_parallel(), foedus::storage::hash::HashStoragePimpl::verify_single_thread(), and foedus::storage::hash::HashStoragePimpl::verify_single_thread_intermediate().
|
inline |
Definition at line 80 of file hash_page_impl.hpp.
Referenced by foedus::storage::hash::HashStoragePimpl::debugout_single_thread_intermediate(), foedus::storage::hash::HashPartitioner::design_partition_task(), foedus::storage::hash::HashComposer::drop_volatiles(), foedus::storage::hash::HashStoragePimpl::follow_page(), foedus::storage::hash::HashStoragePimpl::hcc_reset_all_temperature_stat_intermediate(), foedus::storage::hash::ComposedBinsMergedStream::init(), foedus::storage::hash::HashStoragePimpl::locate_bin(), foedus::storage::hash::ComposedBinsMergedStream::open_path(), foedus::storage::hash::operator<<(), and foedus::storage::hash::HashStoragePimpl::verify_single_thread_intermediate().
|
inline |
Definition at line 81 of file hash_page_impl.hpp.
|
inline |
Definition at line 82 of file hash_page_impl.hpp.
Referenced by foedus::storage::hash::HashStoragePimpl::follow_page_bin_head(), and foedus::storage::hash::ComposedBinsMergedStream::process_a_bin().
|
inline |
Definition at line 83 of file hash_page_impl.hpp.
|
inline |
Definition at line 76 of file hash_page_impl.hpp.
References ASSERT_ND, foedus::storage::PageHeader::page_id_, and foedus::storage::PageHeader::snapshot_.
|
inline |
Definition at line 72 of file hash_page_impl.hpp.
References ASSERT_ND, foedus::storage::PageHeader::page_id_, and foedus::storage::PageHeader::snapshot_.
|
inline |
Definition at line 70 of file hash_page_impl.hpp.
Referenced by foedus::storage::hash::HashComposer::construct_root(), foedus::storage::hash::HashComposeContext::execute(), foedus::storage::hash::HashStoragePimpl::follow_page(), foedus::storage::hash::HashStoragePimpl::follow_page_bin_head(), foedus::storage::hash::HashStoragePimpl::locate_bin(), foedus::storage::hash::ComposedBinsMergedStream::open_path(), foedus::storage::hash::operator<<(), foedus::storage::hash::ComposedBinsMergedStream::process_a_bin(), release_pages_recursive(), release_pages_recursive_parallel(), foedus::storage::hash::release_parallel(), foedus::storage::hash::resolve_intermediate_impl(), and foedus::storage::hash::HashStoragePimpl::verify_single_thread_intermediate().
|
inline |
Definition at line 71 of file hash_page_impl.hpp.
void foedus::storage::hash::HashIntermediatePage::initialize_snapshot_page | ( | StorageId | storage_id, |
SnapshotPagePointer | page_id, | ||
uint8_t | level, | ||
HashBin | start_bin | ||
) |
Definition at line 58 of file hash_page_impl.cpp.
References foedus::storage::hash::HashBinRange::begin_, foedus::storage::hash::HashBinRange::end_, foedus::storage::PageHeader::init_snapshot(), foedus::storage::kHashIntermediatePageType, foedus::storage::hash::kHashMaxBins, foedus::storage::kPageSize, and foedus::storage::PageHeader::set_in_layer_level().
Referenced by foedus::storage::hash::HashComposer::construct_root(), and foedus::storage::hash::ComposedBinsMergedStream::open_path().
void foedus::storage::hash::HashIntermediatePage::initialize_volatile_page | ( | StorageId | storage_id, |
VolatilePagePointer | page_id, | ||
const HashIntermediatePage * | parent, | ||
uint8_t | level, | ||
HashBin | start_bin | ||
) |
Called only when this page is initialized.
Definition at line 40 of file hash_page_impl.cpp.
References ASSERT_ND, foedus::storage::hash::HashBinRange::begin_, foedus::storage::hash::HashBinRange::contains(), foedus::storage::hash::HashBinRange::end_, get_level(), foedus::storage::PageHeader::init_volatile(), foedus::storage::kHashIntermediatePageType, foedus::storage::hash::kHashMaxBins, foedus::storage::kPageSize, and foedus::storage::PageHeader::set_in_layer_level().
Referenced by foedus::storage::hash::HashStoragePimpl::create(), and foedus::storage::hash::hash_intermediate_volatile_page_init().
|
delete |
void foedus::storage::hash::HashIntermediatePage::release_pages_recursive | ( | const memory::GlobalVolatilePageResolver & | page_resolver, |
memory::PageReleaseBatch * | batch | ||
) |
Definition at line 302 of file hash_page_impl.cpp.
References ASSERT_ND, foedus::storage::VolatilePagePointer::clear(), foedus::storage::PageHeader::get_in_layer_level(), get_level(), foedus::storage::PageHeader::get_page_type(), header(), foedus::storage::hash::HashDataPage::header(), foedus::storage::VolatilePagePointer::is_null(), foedus::storage::kHashDataPageType, foedus::storage::hash::kHashIntermediatePageFanout, foedus::storage::kHashIntermediatePageType, foedus::storage::PageHeader::page_id_, foedus::memory::PageReleaseBatch::release(), release_pages_recursive(), foedus::storage::hash::HashDataPage::release_pages_recursive(), foedus::memory::GlobalVolatilePageResolver::resolve_offset(), foedus::storage::DualPagePointer::volatile_pointer_, and foedus::storage::VolatilePagePointer::word.
Referenced by release_pages_recursive(), release_pages_recursive_parallel(), and foedus::storage::hash::release_parallel().
void foedus::storage::hash::HashIntermediatePage::release_pages_recursive_parallel | ( | Engine * | engine | ) |
Definition at line 271 of file hash_page_impl.cpp.
References foedus::memory::EngineMemory::get_global_volatile_page_resolver(), get_level(), foedus::Engine::get_memory_manager(), foedus::memory::EngineMemory::get_node_memory(), foedus::storage::VolatilePagePointer::get_numa_node(), foedus::storage::VolatilePagePointer::get_offset(), header(), foedus::storage::VolatilePagePointer::is_null(), foedus::storage::hash::kHashIntermediatePageFanout, foedus::storage::PageHeader::page_id_, foedus::memory::PageReleaseBatch::release_all(), foedus::memory::PagePool::release_one(), release_pages_recursive(), foedus::storage::hash::release_parallel(), foedus::storage::DualPagePointer::volatile_pointer_, and foedus::storage::VolatilePagePointer::word.
Referenced by foedus::storage::hash::HashStoragePimpl::drop().
|
friend |
defined in hash_page_debug.cpp.
Definition at line 31 of file hash_page_debug.cpp.