libfoedus-core
FOEDUS Core Library
|
Composer for an masstree storage. More...
Composer for an masstree storage.
This is the most complex composer out of the four storage types.
Definition at line 69 of file masstree_composer_impl.hpp.
#include <masstree_composer_impl.hpp>
Public Member Functions | |
MasstreeComposer (Composer *parent) | |
MasstreeComposer methods. More... | |
std::string | to_string () const |
ErrorStack | compose (const Composer::ComposeArguments &args) |
ErrorStack | construct_root (const Composer::ConstructRootArguments &args) |
Composer::DropResult | drop_volatiles (const Composer::DropVolatilesArguments &args) |
drop_volatiles and related methods More... | |
void | drop_root_volatile (const Composer::DropVolatilesArguments &args) |
|
explicit |
MasstreeComposer methods.
Definition at line 71 of file masstree_composer_impl.cpp.
References ASSERT_ND, and foedus::storage::Storage< CONTROL_BLOCK >::exists().
ErrorStack foedus::storage::masstree::MasstreeComposer::compose | ( | const Composer::ComposeArguments & | args | ) |
Definition at line 78 of file masstree_composer_impl.cpp.
References foedus::storage::Composer::ComposeArguments::base_epoch_, CHECK_ERROR, foedus::debugging::StopWatch::elapsed_ms(), foedus::DefaultInitializable::initialize(), foedus::storage::kMasstreeStorage, foedus::storage::masstree::MasstreeComposeContext::kMaxLevels, foedus::kRetOk, foedus::storage::Composer::ComposeArguments::log_streams_, foedus::storage::Composer::ComposeArguments::log_streams_count_, foedus::debugging::StopWatch::stop(), to_string(), foedus::DefaultInitializable::uninitialize(), and foedus::storage::Composer::ComposeArguments::work_memory_.
Referenced by foedus::storage::Composer::compose().
ErrorStack foedus::storage::masstree::MasstreeComposer::construct_root | ( | const Composer::ConstructRootArguments & | args | ) |
Definition at line 111 of file masstree_composer_impl.cpp.
References ASSERT_ND, CHECK_ERROR, foedus::snapshot::SnapshotWriter::dump_pages(), foedus::debugging::StopWatch::elapsed_ms(), foedus::storage::masstree::MasstreeIntermediatePage::extract_separators_snapshot(), foedus::storage::masstree::from_this_snapshot(), foedus::storage::masstree::MasstreePage::get_btree_level(), foedus::Attachable< CONTROL_BLOCK >::get_control_block(), foedus::storage::Page::get_header(), foedus::storage::masstree::MasstreePage::get_key_count(), foedus::storage::masstree::MasstreeIntermediatePage::get_minipage(), foedus::snapshot::SnapshotWriter::get_next_page_id(), foedus::snapshot::SnapshotWriter::get_page_base(), foedus::storage::PageHeader::get_page_type(), foedus::storage::masstree::MasstreePage::header(), foedus::storage::masstree::MasstreeBorderPage::initialize_snapshot_page(), foedus::storage::masstree::MasstreePage::is_border(), foedus::storage::masstree::MasstreeIntermediatePointerIterator::is_valid(), foedus::storage::masstree::MasstreeIntermediatePage::MiniPage::key_count_, foedus::storage::kMasstreeIntermediatePageType, foedus::storage::kPageSize, foedus::kRetOk, foedus::storage::PageHeader::masstree_in_layer_level_, foedus::storage::Composer::ConstructRootArguments::new_root_page_pointer_, foedus::storage::PageHeader::page_id_, foedus::storage::masstree::MasstreeIntermediatePage::MiniPage::pointers_, foedus::storage::Composer::ConstructRootArguments::root_info_pages_, foedus::storage::Composer::ConstructRootArguments::root_info_pages_count_, foedus::storage::PageHeader::snapshot_, foedus::storage::DualPagePointer::snapshot_pointer_, foedus::storage::Composer::ConstructRootArguments::snapshot_writer_, foedus::debugging::StopWatch::stop(), foedus::storage::PageHeader::storage_id_, to_string(), and WRAP_ERROR_CODE.
Referenced by foedus::storage::Composer::construct_root().
void foedus::storage::masstree::MasstreeComposer::drop_root_volatile | ( | const Composer::DropVolatilesArguments & | args | ) |
Definition at line 2622 of file masstree_composer_impl.cpp.
References foedus::storage::VolatilePagePointer::clear(), foedus::storage::masstree::MasstreePage::get_btree_level(), foedus::Attachable< CONTROL_BLOCK >::get_control_block(), foedus::storage::masstree::MasstreeStorage::get_masstree_metadata(), foedus::storage::Storage< CONTROL_BLOCK >::get_name(), foedus::storage::Metadata::keeps_all_volatile_pages(), and foedus::storage::DualPagePointer::volatile_pointer_.
Referenced by foedus::storage::Composer::drop_root_volatile().
Composer::DropResult foedus::storage::masstree::MasstreeComposer::drop_volatiles | ( | const Composer::DropVolatilesArguments & | args | ) |
drop_volatiles and related methods
Definition at line 2558 of file masstree_composer_impl.cpp.
References ASSERT_ND, foedus::storage::Composer::DropResult::combine(), foedus::storage::Composer::DropResult::dropped_all_, foedus::Attachable< CONTROL_BLOCK >::get_control_block(), foedus::storage::masstree::MasstreeStorage::get_masstree_metadata(), foedus::storage::PartitionerMetadata::get_metadata(), foedus::storage::masstree::MasstreeIntermediatePage::get_minipage(), foedus::storage::Storage< CONTROL_BLOCK >::get_name(), foedus::storage::masstree::MasstreeIntermediatePointerIterator::is_valid(), foedus::storage::Metadata::keeps_all_volatile_pages(), foedus::storage::masstree::kMaxIntermediatePointers, foedus::storage::masstree::kSupremumSlice, foedus::storage::PartitionerMetadata::locate_data(), foedus::storage::masstree::MasstreePartitionerData::low_keys_, foedus::storage::Composer::DropVolatilesArguments::my_partition_, foedus::storage::masstree::MasstreePartitionerData::partition_count_, foedus::storage::Composer::DropVolatilesArguments::partitioned_drop_, foedus::storage::masstree::MasstreePartitionerData::partitions_, foedus::storage::masstree::MasstreeIntermediatePage::MiniPage::pointers_, foedus::storage::PartitionerMetadata::valid_, and foedus::storage::DualPagePointer::volatile_pointer_.
Referenced by foedus::storage::Composer::drop_volatiles().
std::string foedus::storage::masstree::MasstreeComposer::to_string | ( | ) | const |
Definition at line 282 of file masstree_composer_impl.cpp.
Referenced by compose(), and construct_root().