libfoedus-core
FOEDUS Core Library
foedus::storage::hash::HashPartitionerData Struct Referencefinal

Detailed Description

Definition at line 93 of file hash_partitioner_impl.hpp.

#include <hash_partitioner_impl.hpp>

Public Member Functions

 HashPartitionerData ()=delete
 
 ~HashPartitionerData ()=delete
 
uint64_t object_size () const
 

Static Public Member Functions

static uint64_t object_size (uint16_t node_count, HashBin total_bin_count)
 

Public Attributes

bool partitionable_
 if false, every record goes to node-0. More...
 
uint8_t levels_
 
uint8_t bin_bits_
 
uint8_t bin_shifts_
 
char padding_ [4]
 
HashBin total_bin_count_
 Size of the entire hash. More...
 
PartitionId bin_owners_ [8]
 partition of each hash bin. More...
 

Constructor & Destructor Documentation

foedus::storage::hash::HashPartitionerData::HashPartitionerData ( )
delete
foedus::storage::hash::HashPartitionerData::~HashPartitionerData ( )
delete

Member Function Documentation

static uint64_t foedus::storage::hash::HashPartitionerData::object_size ( uint16_t  node_count,
HashBin  total_bin_count 
)
inlinestatic

Definition at line 98 of file hash_partitioner_impl.hpp.

98  {
99  if (node_count <= 1U) {
100  return 16; // in this case we don't need bin_owners_
101  } else {
102  return total_bin_count + 16;
103  }
104  }
uint64_t foedus::storage::hash::HashPartitionerData::object_size ( ) const
inline

Definition at line 105 of file hash_partitioner_impl.hpp.

References partitionable_, and total_bin_count_.

Referenced by foedus::storage::hash::HashPartitioner::design_partition().

105  {
106  if (!partitionable_) {
107  return 16;
108  } else {
109  return total_bin_count_ + 16;
110  }
111  }
HashBin total_bin_count_
Size of the entire hash.
bool partitionable_
if false, every record goes to node-0.

Here is the caller graph for this function:

Member Data Documentation

uint8_t foedus::storage::hash::HashPartitionerData::bin_bits_

Definition at line 116 of file hash_partitioner_impl.hpp.

PartitionId foedus::storage::hash::HashPartitionerData::bin_owners_[8]

partition of each hash bin.

Actual size is total_bin_count_. If !partitionable_, we don't even allocate memory for this part.

Definition at line 127 of file hash_partitioner_impl.hpp.

Referenced by foedus::storage::hash::HashPartitioner::design_partition_task(), foedus::storage::hash::HashPartitioner::get_bucket_owners(), and foedus::storage::hash::HashPartitioner::partition_batch().

uint8_t foedus::storage::hash::HashPartitionerData::bin_shifts_
uint8_t foedus::storage::hash::HashPartitionerData::levels_
char foedus::storage::hash::HashPartitionerData::padding_[4]

Definition at line 118 of file hash_partitioner_impl.hpp.

bool foedus::storage::hash::HashPartitionerData::partitionable_

if false, every record goes to node-0.

single-page hash, only one SOC, etc.

Definition at line 114 of file hash_partitioner_impl.hpp.

Referenced by foedus::storage::hash::HashPartitioner::design_partition_task(), foedus::storage::hash::HashPartitioner::is_partitionable(), and object_size().

HashBin foedus::storage::hash::HashPartitionerData::total_bin_count_

Size of the entire hash.

Definition at line 121 of file hash_partitioner_impl.hpp.

Referenced by object_size(), and foedus::storage::hash::operator<<().


The documentation for this struct was generated from the following file: