libfoedus-core
FOEDUS Core Library
foedus::storage::sequential::SequentialMetadata Struct Referencefinal

Metadata of a sequential storage. More...

Detailed Description

Metadata of a sequential storage.

About root_snapshot_page_id
In sequential storage, root_snapshot_page_id points to the head of stable root pages. A sequential storage has zero or more stable root pages (SequentialRootPage) that form a singly-linked list. Each of them contains a number of page pointers to head pages. In reality, most sequential storage should have only one root page which has only a few head pages.

When this pointer is zero, there is no stable head page.

This page pointer is not dual page pointer because we never have volatile (modify-able) root pages. All the volatile part are stored as the in-memory append-only list, which is totally orthogonal to snapshot pages.

Definition at line 53 of file sequential_metadata.hpp.

#include <sequential_metadata.hpp>

Inheritance diagram for foedus::storage::sequential::SequentialMetadata:
Collaboration diagram for foedus::storage::sequential::SequentialMetadata:

Public Member Functions

 SequentialMetadata ()
 
 SequentialMetadata (StorageId id, const StorageName &name)
 
 SequentialMetadata (const StorageName &name)
 This one is for newly creating a storage. More...
 
std::string describe () const
 
uint32_t unused_dummy_func_padding () const
 

Public Attributes

Epoch::EpochInteger truncate_epoch_
 The min epoch value (truncate-epoch) for all valid records in this storage. More...
 
uint32_t padding_
 

Friends

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

Additional Inherited Members

Constructor & Destructor Documentation

foedus::storage::sequential::SequentialMetadata::SequentialMetadata ( )
inline

Definition at line 54 of file sequential_metadata.hpp.

Zero is always reserved for invalid epoch.
Definition: epoch.hpp:68
Epoch::EpochInteger truncate_epoch_
The min epoch value (truncate-epoch) for all valid records in this storage.
foedus::storage::sequential::SequentialMetadata::SequentialMetadata ( StorageId  id,
const StorageName name 
)
inline

Definition at line 56 of file sequential_metadata.hpp.

58  }
Zero is always reserved for invalid epoch.
Definition: epoch.hpp:68
Epoch::EpochInteger truncate_epoch_
The min epoch value (truncate-epoch) for all valid records in this storage.
foedus::storage::sequential::SequentialMetadata::SequentialMetadata ( const StorageName name)
inlineexplicit

This one is for newly creating a storage.

Definition at line 60 of file sequential_metadata.hpp.

62  }
Zero is always reserved for invalid epoch.
Definition: epoch.hpp:68
Epoch::EpochInteger truncate_epoch_
The min epoch value (truncate-epoch) for all valid records in this storage.

Member Function Documentation

std::string foedus::storage::sequential::SequentialMetadata::describe ( ) const

Definition at line 29 of file sequential_metadata.cpp.

29  {
30  std::stringstream o;
31  o << SequentialMetadataSerializer(const_cast<SequentialMetadata*>(this));
32  return o.str();
33 }
uint32_t foedus::storage::sequential::SequentialMetadata::unused_dummy_func_padding ( ) const
inline

Definition at line 67 of file sequential_metadata.hpp.

References padding_.

Friends And Related Function Documentation

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

Definition at line 34 of file sequential_metadata.cpp.

34  {
35  o << SequentialMetadataSerializer(const_cast<SequentialMetadata*>(&v));
36  return o;
37 }

Member Data Documentation

uint32_t foedus::storage::sequential::SequentialMetadata::padding_

Definition at line 77 of file sequential_metadata.hpp.

Referenced by unused_dummy_func_padding().

Epoch::EpochInteger foedus::storage::sequential::SequentialMetadata::truncate_epoch_

The min epoch value (truncate-epoch) for all valid records in this storage.

When a physical record or a page has an epoch value less than a truncate-epoch, they are logically non-existent. Truncate-epoch is always valid, starting from the system's lowest epoch.

Definition at line 75 of file sequential_metadata.hpp.

Referenced by foedus::storage::sequential::SequentialMetadataSerializer::load(), and foedus::storage::sequential::SequentialMetadataSerializer::save().


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