20 #include <glog/logging.h>
72 ASSERT_ND(index0->data_offset_ <= index0->data_size_);
74 if (index0->data_offset_ + data_size > index0->data_size_) {
79 index0->data_offset_ += data_size;
101 LOG(FATAL) <<
"Unsupported storage type:" << type_;
113 LOG(FATAL) <<
"Unsupported storage type:" << type_;
125 LOG(FATAL) <<
"Unsupported storage type:" << type_;
136 LOG(FATAL) <<
"Unsupported storage type:" << type_;
142 <<
"<id>" << v.id_ <<
"</id>"
145 o <<
"</Partitioner>";
149 o <<
"<PartitionerMetadata>"
150 <<
"<valid>" << v.
valid_ <<
"</valid>"
153 <<
"</PartitionerMetadata>";
Metadata meta_
common part of the metadata.
void sort_batch(const SortBatchArguments &args)
Called from log reducer to sort log entries by keys.
storage::StorageManager * get_storage_manager() const
See Storage Manager.
bool is_partitionable() const
uint32_t StorageId
Unique ID for storage.
Root package of FOEDUS (Fast Optimistic Engine for Data Unification Services).
void * partitioner_data_
Data block to place detailed information of partitioners.
bool is_partitionable() const
void partition_batch(const Partitioner::PartitionBatchArguments &args) const
GlobalMemoryAnchors * get_global_memory_anchors()
bool is_partitionable() const
Partitioner for a hash storage.
Brings error stacktrace information as return value of functions.
0x0825 : "STORAGE: Memory for Partitioners ran out during snapshot. Increase StorageOptions::partitio...
0 indicates invalid type.
Partitioner for an array storage.
bool is_locked_by_me() const
const EngineOptions & get_options() const
SharedMutex * get_mutex() const
ErrorStack design_partition(const Partitioner::DesignPartitionArguments &args)
void sort_batch(const Partitioner::SortBatchArguments &args) const
uint32_t partitioner_data_memory_mb_
Size in MB of a shared memory buffer allocated for all partitioners during log gleaning.
Partitioner(Engine *engine, StorageId id)
Instantiate an instance for the given storage.
storage::PartitionerMetadata * partitioner_metadata_
Tiny metadata memory for partitioners.
PartitionerMetadata * control_block_
The shared data on shared memory that has been initialized in some SOC or master engine.
storage::StorageOptions storage_
void sort_batch(const Partitioner::SortBatchArguments &args) const
void sort_batch(const Partitioner::SortBatchArguments &args) const
Database engine object that holds all resources and provides APIs.
Auto-lock scope object for SharedMutex.
const char * to_storage_type_name(StorageType type)
Gives a string representation of StorageType.
void sort_batch(const Partitioner::SortBatchArguments &args) const
Attachable Resources on Shared Memory.
Just a set of pointers within global_memory_ for ease of use.
bool is_partitionable()
returns if this storage is partitionable.
Partitioner for an sequential storage.
const ErrorStack kRetOk
Normal return value for no-error case.
void partition_batch(const PartitionBatchArguments &args)
Identifies the partition of each log record in a batched fashion.
soc::SocManager * get_soc_manager() const
See SOC and IPC.
Partitioner for a masstree storage.
Partitioning and sorting logic for one storage.
Convenient way of writing hex integers to stream.
bool is_valid() const
whether this object is ready for partitioning.
Arguments for sort_batch()
void partition_batch(const Partitioner::PartitionBatchArguments &args) const
std::ostream & operator<<(std::ostream &o, const Composer &v)
ErrorStack design_partition(const Partitioner::DesignPartitionArguments &args)
ErrorStack design_partition(const DesignPartitionArguments &args)
Determines partitioning scheme for this storage.
#define ASSERT_ND(x)
A warning-free wrapper macro of assert() that has no performance effect in release mode even when 'x'...
StorageControlBlock * get_storage(StorageId id)
Returns the storage of given ID.
void partition_batch(const Partitioner::PartitionBatchArguments &args) const
bool is_partitionable() const
ErrorStack design_partition(const Partitioner::DesignPartitionArguments &args)
ErrorStack design_partition(const Partitioner::DesignPartitionArguments &args)
ErrorCode
Enum of error codes defined in error_code.xmacro.
Arguments for design_partition()
void partition_batch(const Partitioner::PartitionBatchArguments &args) const
const PartitionerMetadata & get_metadata() const
Returns tiny metadata of the partitioner in shared memory.
SharedMemoryRepo * get_shared_memory_repo()
Returns the shared memories maintained across SOCs.
Arguments for partition_batch()