libfoedus-core
FOEDUS Core Library
foedus::storage::array::ArrayMetadata Struct Referencefinal

Metadata of an array storage. More...

Detailed Description

Metadata of an array storage.

Definition at line 40 of file array_metadata.hpp.

#include <array_metadata.hpp>

Inheritance diagram for foedus::storage::array::ArrayMetadata:
Collaboration diagram for foedus::storage::array::ArrayMetadata:

Public Types

enum  Constants { kDefaultSnapshotDropVolatilePagesThreshold = 3 }
 

Public Member Functions

 ArrayMetadata ()
 
 ArrayMetadata (StorageId id, const StorageName &name, uint16_t payload_size, ArrayOffset array_size)
 
 ArrayMetadata (const StorageName &name, uint16_t payload_size, ArrayOffset array_size)
 This one is for newly creating a storage. More...
 
std::string describe () const
 

Public Attributes

uint16_t payload_size_
 byte size of one record in this array storage without internal overheads More...
 
uint16_t snapshot_drop_volatile_pages_threshold_
 Number of levels of volatile pages to keep after each snapshotting. More...
 
uint32_t padding_
 
ArrayOffset array_size_
 Size of this array. More...
 

Friends

std::ostream & operator<< (std::ostream &o, const ArrayMetadata &v)
 

Additional Inherited Members

Member Enumeration Documentation

Constructor & Destructor Documentation

foedus::storage::array::ArrayMetadata::ArrayMetadata ( )
inline

Definition at line 44 of file array_metadata.hpp.

45  : Metadata(0, kArrayStorage, ""),
46  payload_size_(0),
48  padding_(0),
49  array_size_(0) {}
ArrayOffset array_size_
Size of this array.
uint16_t snapshot_drop_volatile_pages_threshold_
Number of levels of volatile pages to keep after each snapshotting.
uint16_t payload_size_
byte size of one record in this array storage without internal overheads
foedus::storage::array::ArrayMetadata::ArrayMetadata ( StorageId  id,
const StorageName name,
uint16_t  payload_size,
ArrayOffset  array_size 
)
inline

Definition at line 50 of file array_metadata.hpp.

55  : Metadata(id, kArrayStorage, name),
56  payload_size_(payload_size),
58  padding_(0),
59  array_size_(array_size) {
60  }
ArrayOffset array_size_
Size of this array.
uint16_t snapshot_drop_volatile_pages_threshold_
Number of levels of volatile pages to keep after each snapshotting.
uint16_t payload_size_
byte size of one record in this array storage without internal overheads
foedus::storage::array::ArrayMetadata::ArrayMetadata ( const StorageName name,
uint16_t  payload_size,
ArrayOffset  array_size 
)
inline

This one is for newly creating a storage.

Definition at line 62 of file array_metadata.hpp.

63  : Metadata(0, kArrayStorage, name),
64  payload_size_(payload_size),
66  padding_(0),
67  array_size_(array_size) {
68  }
ArrayOffset array_size_
Size of this array.
uint16_t snapshot_drop_volatile_pages_threshold_
Number of levels of volatile pages to keep after each snapshotting.
uint16_t payload_size_
byte size of one record in this array storage without internal overheads

Member Function Documentation

std::string foedus::storage::array::ArrayMetadata::describe ( ) const

Definition at line 28 of file array_metadata.cpp.

28  {
29  std::stringstream o;
30  o << ArrayMetadataSerializer(const_cast<ArrayMetadata*>(this));
31  return o.str();
32 }

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  o,
const ArrayMetadata v 
)
friend

Definition at line 33 of file array_metadata.cpp.

33  {
34  o << ArrayMetadataSerializer(const_cast<ArrayMetadata*>(&v));
35  return o;
36 }

Member Data Documentation

uint32_t foedus::storage::array::ArrayMetadata::padding_

Definition at line 83 of file array_metadata.hpp.

uint16_t foedus::storage::array::ArrayMetadata::payload_size_
uint16_t foedus::storage::array::ArrayMetadata::snapshot_drop_volatile_pages_threshold_

Number of levels of volatile pages to keep after each snapshotting.

0 means this storage keeps no volatile pages after snapshotting. 1 means it keeps only the root page, 2 means another level, ... The default is 3. Keeping 256^2=64k pages in higher level should hit a good balance. If it doesn't, the user (you) chooses the right value per storage.

Definition at line 82 of file array_metadata.hpp.

Referenced by foedus::storage::array::ArrayStoragePimpl::get_snapshot_drop_volatile_pages_threshold(), foedus::storage::array::ArrayMetadataSerializer::load(), and foedus::storage::array::ArrayMetadataSerializer::save().


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