libfoedus-core
FOEDUS Core Library
|
Partitioner for a masstree storage. More...
Partitioner for a masstree storage.
The partitioner for masstree simply designs n pairs of a low-key and node.
Definition at line 98 of file masstree_partitioner_impl.hpp.
#include <masstree_partitioner_impl.hpp>
Public Member Functions | |
MasstreePartitioner (Partitioner *parent) | |
MasstreePartitioner methods. More... | |
ErrorStack | design_partition (const Partitioner::DesignPartitionArguments &args) |
bool | is_partitionable () const |
void | partition_batch (const Partitioner::PartitionBatchArguments &args) const |
void | sort_batch (const Partitioner::SortBatchArguments &args) const |
Friends | |
std::ostream & | operator<< (std::ostream &o, const MasstreePartitioner &v) |
|
explicit |
MasstreePartitioner methods.
Definition at line 53 of file masstree_partitioner_impl.cpp.
References foedus::storage::PartitionerMetadata::locate_data(), and foedus::storage::PartitionerMetadata::valid_.
ErrorStack foedus::storage::masstree::MasstreePartitioner::design_partition | ( | const Partitioner::DesignPartitionArguments & | args | ) |
Definition at line 64 of file masstree_partitioner_impl.cpp.
References foedus::storage::PartitionerMetadata::allocate_data(), ASSERT_ND, foedus::memory::AlignedMemory::assure_capacity(), CHECK_ERROR, foedus::storage::extract_numa_node_from_snapshot_pointer(), foedus::memory::AlignedMemory::get_block(), foedus::Attachable< CONTROL_BLOCK >::get_control_block(), foedus::memory::EngineMemory::get_global_volatile_page_resolver(), foedus::Engine::get_memory_manager(), foedus::Engine::get_soc_count(), foedus::storage::masstree::MasstreePage::is_border(), foedus::storage::masstree::MasstreeIntermediatePointerIterator::is_valid(), foedus::storage::masstree::kInfimumSlice, foedus::storage::kPageSize, foedus::kRetOk, foedus::storage::PartitionerMetadata::locate_data(), foedus::storage::PartitionerMetadata::mutex_, foedus::cache::SnapshotFileSet::read_page(), foedus::memory::GlobalVolatilePageResolver::resolve_offset(), foedus::storage::masstree::MasstreeStorageControlBlock::root_page_pointer_, foedus::storage::Partitioner::DesignPartitionArguments::snapshot_files_, foedus::storage::DualPagePointer::snapshot_pointer_, foedus::storage::PartitionerMetadata::valid_, foedus::storage::DualPagePointer::volatile_pointer_, foedus::storage::Partitioner::DesignPartitionArguments::work_memory_, and WRAP_ERROR_CODE.
Referenced by foedus::storage::Partitioner::design_partition().
bool foedus::storage::masstree::MasstreePartitioner::is_partitionable | ( | ) | const |
Definition at line 280 of file masstree_partitioner_impl.cpp.
References foedus::storage::masstree::MasstreePartitionerData::partition_count_.
Referenced by foedus::storage::Partitioner::is_partitionable(), and partition_batch().
void foedus::storage::masstree::MasstreePartitioner::partition_batch | ( | const Partitioner::PartitionBatchArguments & | args | ) | const |
Definition at line 284 of file masstree_partitioner_impl.cpp.
References foedus::debugging::RdtscWatch::elapsed(), foedus::storage::masstree::MasstreePartitionerData::find_partition(), foedus::storage::masstree::MasstreeCommonLogType::get_key(), is_partitionable(), foedus::storage::masstree::MasstreeCommonLogType::key_length_, foedus::storage::Partitioner::PartitionBatchArguments::log_buffer_, foedus::storage::Partitioner::PartitionBatchArguments::log_positions_, foedus::storage::Partitioner::PartitionBatchArguments::logs_count_, foedus::storage::masstree::MasstreePartitionerData::partition_count_, foedus::storage::masstree::resolve_log(), foedus::storage::Partitioner::PartitionBatchArguments::results_, and foedus::debugging::RdtscWatch::stop().
Referenced by foedus::storage::Partitioner::partition_batch().
void foedus::storage::masstree::MasstreePartitioner::sort_batch | ( | const Partitioner::SortBatchArguments & | args | ) | const |
Definition at line 489 of file masstree_partitioner_impl.cpp.
References foedus::storage::Partitioner::SortBatchArguments::logs_count_, foedus::storage::Partitioner::SortBatchArguments::longest_key_length_, foedus::storage::Partitioner::SortBatchArguments::shortest_key_length_, and foedus::storage::Partitioner::SortBatchArguments::written_count_.
Referenced by foedus::storage::Partitioner::sort_batch().
|
friend |
Definition at line 503 of file masstree_partitioner_impl.cpp.