libfoedus-core
FOEDUS Core Library
|
HashComposer's compose() implementation separated from the class itself. More...
HashComposer's compose() implementation separated from the class itself.
It's a complicated method, so worth being its own class. This defines all the variables maintained during one compose() call.
Definition at line 142 of file hash_composer_impl.hpp.
#include <hash_composer_impl.hpp>
Public Member Functions | |
HashComposeContext (Engine *engine, snapshot::MergeSort *merge_sort, snapshot::SnapshotWriter *snapshot_writer, cache::SnapshotFileSet *previous_snapshot_files, Page *root_info_page) | |
HashComposeContext methods. More... | |
ErrorStack | execute () |
foedus::storage::hash::HashComposeContext::HashComposeContext | ( | Engine * | engine, |
snapshot::MergeSort * | merge_sort, | ||
snapshot::SnapshotWriter * | snapshot_writer, | ||
cache::SnapshotFileSet * | previous_snapshot_files, | ||
Page * | root_info_page | ||
) |
HashComposeContext methods.
Definition at line 436 of file hash_composer_impl.cpp.
References foedus::memory::AlignedMemory::alloc(), foedus::memory::AlignedMemory::get_block(), foedus::snapshot::SnapshotWriter::get_intermediate_base(), foedus::snapshot::SnapshotWriter::get_intermediate_size(), foedus::snapshot::SnapshotWriter::get_page_base(), foedus::snapshot::SnapshotWriter::get_page_size(), foedus::storage::hash::kHashMaxLevels, foedus::memory::AlignedMemory::kNumaAllocOnnode, and foedus::storage::kPageSize.
ErrorStack foedus::storage::hash::HashComposeContext::execute | ( | ) |
Definition at line 487 of file hash_composer_impl.cpp.
References ASSERT_ND, CHECK_ERROR, foedus::storage::hash::HashTmpBin::clean(), foedus::storage::hash::HashTmpBin::create_memory(), foedus::storage::hash::HashStorage::get_bin_count(), foedus::snapshot::MergeSort::get_current_count(), foedus::snapshot::MergeSort::SortEntry::get_key(), foedus::snapshot::MergeSort::get_sort_entries(), foedus::storage::hash::HashIntermediatePage::header(), foedus::snapshot::MergeSort::is_ended_all(), foedus::storage::kPageSize, foedus::kRetOk, LIKELY, foedus::snapshot::MergeSort::next_batch(), foedus::storage::PageHeader::storage_id_, UNLIKELY, and WRAP_ERROR_CODE.