libfoedus-core
FOEDUS Core Library
|
Composer for an sequential storage. More...
Composer for an sequential storage.
Like partitioner, this does a quite simple stuff. We don't need to do any merge-sort as there is no order. We just sequentially add them all.
Definition at line 60 of file sequential_composer_impl.hpp.
#include <sequential_composer_impl.hpp>
Classes | |
struct | RootInfoPage |
Output of one compose() call, which are then combined in construct_root(). More... | |
Public Member Functions | |
SequentialComposer (Composer *parent) | |
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) |
|
explicit |
Definition at line 45 of file sequential_composer_impl.cpp.
ErrorStack foedus::storage::sequential::SequentialComposer::compose | ( | const Composer::ComposeArguments & | args | ) |
Definition at line 154 of file sequential_composer_impl.cpp.
References foedus::storage::sequential::SequentialPage::append_record_nosync(), ASSERT_ND, foedus::storage::sequential::SequentialPage::can_insert_record(), CHECK_ERROR, foedus::storage::sequential::StreamStatus::cur_owner_id_, foedus::storage::sequential::StreamStatus::cur_payload_, foedus::debugging::StopWatch::elapsed_ms(), foedus::storage::sequential::StreamStatus::ended_, foedus::storage::extract_numa_node_from_snapshot_pointer(), foedus::storage::extract_snapshot_id_from_snapshot_pointer(), foedus::storage::sequential::HeadPagePointer::from_epoch_, foedus::storage::sequential::StreamStatus::get_entry(), foedus::xct::XctId::get_epoch(), foedus::snapshot::SnapshotWriter::get_numa_node(), foedus::snapshot::SnapshotWriter::get_page_base(), foedus::snapshot::SnapshotWriter::get_page_size(), foedus::snapshot::SnapshotWriter::get_snapshot_id(), foedus::storage::sequential::SequentialPage::header(), foedus::storage::sequential::SequentialComposer::RootInfoPage::header_, foedus::log::BaseLogType::header_, foedus::storage::sequential::StreamStatus::init(), foedus::storage::sequential::SequentialPage::initialize_snapshot_page(), foedus::kRetOk, foedus::storage::Composer::ComposeArguments::log_streams_, foedus::storage::Composer::ComposeArguments::log_streams_count_, foedus::storage::sequential::StreamStatus::next(), foedus::storage::sequential::SequentialPage::next_page(), foedus::Epoch::one_more(), foedus::storage::sequential::HeadPagePointer::page_count_, foedus::storage::sequential::HeadPagePointer::page_id_, foedus::storage::PageHeader::page_id_, foedus::storage::sequential::SequentialAppendLogType::payload_count_, foedus::storage::sequential::SequentialComposer::RootInfoPage::pointer_, foedus::storage::Composer::ComposeArguments::root_info_page_, foedus::storage::DualPagePointer::snapshot_pointer_, foedus::storage::Composer::ComposeArguments::snapshot_writer_, foedus::fs::status(), foedus::debugging::StopWatch::stop(), foedus::storage::PageHeader::storage_id_, foedus::Epoch::store_max(), foedus::Epoch::store_min(), foedus::storage::sequential::HeadPagePointer::to_epoch_, to_string(), WRAP_ERROR_CODE, and foedus::log::LogHeader::xct_id_.
Referenced by foedus::storage::Composer::compose().
ErrorStack foedus::storage::sequential::SequentialComposer::construct_root | ( | const Composer::ConstructRootArguments & | args | ) |
Definition at line 230 of file sequential_composer_impl.cpp.
References ASSERT_ND, foedus::snapshot::SnapshotWriter::dump_pages(), foedus::debugging::StopWatch::elapsed_us(), foedus::storage::extract_numa_node_from_snapshot_pointer(), foedus::storage::extract_snapshot_id_from_snapshot_pointer(), foedus::memory::AlignedMemory::get_block(), foedus::Attachable< CONTROL_BLOCK >::get_control_block(), foedus::storage::Storage< CONTROL_BLOCK >::get_metadata(), foedus::storage::sequential::SequentialRootPage::get_next_page(), foedus::snapshot::SnapshotWriter::get_next_page_id(), foedus::snapshot::SnapshotWriter::get_numa_node(), foedus::snapshot::SnapshotWriter::get_page_base(), foedus::storage::sequential::SequentialRootPage::get_pointer_count(), foedus::storage::sequential::SequentialRootPage::get_pointers(), foedus::snapshot::SnapshotWriter::get_snapshot_id(), foedus::storage::Composer::ConstructRootArguments::gleaner_resource_, foedus::storage::sequential::SequentialRootPage::header(), foedus::storage::sequential::SequentialRootPage::initialize_snapshot_page(), foedus::kRetOk, foedus::storage::sequential::kRootPageMaxHeadPointers, foedus::storage::Composer::ConstructRootArguments::new_root_page_pointer_, foedus::storage::sequential::HeadPagePointer::page_id_, foedus::storage::PageHeader::page_id_, foedus::storage::sequential::SequentialComposer::RootInfoPage::pointer_, foedus::storage::Composer::ConstructRootArguments::previous_snapshot_files_, foedus::cache::SnapshotFileSet::read_page(), foedus::storage::Composer::ConstructRootArguments::root_info_pages_, foedus::storage::Composer::ConstructRootArguments::root_info_pages_count_, foedus::storage::Metadata::root_snapshot_page_id_, foedus::storage::sequential::SequentialRootPage::set_next_page(), foedus::storage::sequential::SequentialRootPage::set_pointers(), foedus::storage::Composer::ConstructRootArguments::snapshot_writer_, foedus::debugging::StopWatch::stop(), foedus::storage::PageHeader::storage_id_, to_string(), foedus::snapshot::LogGleanerResource::work_memory_, and WRAP_ERROR_CODE.
Referenced by foedus::storage::Composer::construct_root().
Composer::DropResult foedus::storage::sequential::SequentialComposer::drop_volatiles | ( | const Composer::DropVolatilesArguments & | args | ) |
Definition at line 309 of file sequential_composer_impl.cpp.
References ASSERT_ND, foedus::storage::combine_volatile_page_pointer(), foedus::thread::compose_thread_id(), foedus::storage::Composer::DropVolatilesArguments::drop(), foedus::Attachable< CONTROL_BLOCK >::get_control_block(), foedus::storage::sequential::SequentialPage::get_first_record_epoch(), foedus::Engine::get_memory_manager(), foedus::memory::EngineMemory::get_node_memory(), foedus::storage::VolatilePagePointer::get_numa_node(), foedus::storage::VolatilePagePointer::get_offset(), foedus::Engine::get_options(), foedus::storage::sequential::SequentialPage::get_record_count(), foedus::memory::PagePool::get_resolver(), foedus::memory::NumaNodeMemoryRef::get_volatile_pool(), foedus::thread::ThreadOptions::group_count_, foedus::storage::Composer::DropVolatilesArguments::my_partition_, foedus::storage::sequential::SequentialPage::next_page(), foedus::storage::Composer::DropVolatilesArguments::partitioned_drop_, foedus::memory::LocalPageResolver::resolve_offset(), foedus::storage::Composer::DropVolatilesArguments::snapshot_, foedus::EngineOptions::thread_, foedus::thread::ThreadOptions::thread_count_per_group_, foedus::snapshot::Snapshot::valid_until_epoch_, and foedus::storage::DualPagePointer::volatile_pointer_.
Referenced by foedus::storage::Composer::drop_volatiles().
std::string foedus::storage::sequential::SequentialComposer::to_string | ( | ) | const |
Definition at line 305 of file sequential_composer_impl.cpp.
Referenced by compose(), and construct_root().