libfoedus-core
FOEDUS Core Library
foedus::savepoint::Savepoint Struct Referencefinal

The information we maintain in savepoint manager and externalize to a file. More...

Detailed Description

The information we maintain in savepoint manager and externalize to a file.

This object is a very compact representation of progress of the entire engine. This object holds only a few integers per module to denote upto what we are surely done. We update this object for each epoch-based group commit and write out this as an xml durably and atomically.

Definition at line 40 of file savepoint.hpp.

#include <savepoint.hpp>

Inheritance diagram for foedus::savepoint::Savepoint:
Collaboration diagram for foedus::savepoint::Savepoint:

Public Member Functions

 Savepoint ()
 Constructs an empty savepoint. More...
 
ErrorStack load (tinyxml2::XMLElement *element) override
 Reads the content of this object from the given XML element. More...
 
ErrorStack save (tinyxml2::XMLElement *element) const override
 Writes the content of this object to the given XML element. More...
 
const char * get_tag_name () const override
 Returns an XML tag name for this object as a root element. More...
 
void assign (const foedus::externalize::Externalizable *other) override
 Polymorphic assign operator. More...
 
void populate_empty (log::LoggerId logger_count)
 Populate variables as an initial state. More...
 
bool consistent (log::LoggerId logger_count) const
 Tells if the variables are consistent. More...
 
Epoch get_durable_epoch () const
 
Epoch get_current_epoch () const
 
Epoch get_earliest_epoch () const
 
void assert_epoch_values () const
 Check invariants on current_epoch_/durable_epoch_. More...
 
- Public Member Functions inherited from foedus::externalize::Externalizable
ErrorStack load_from_string (const std::string &xml)
 Load the content of this object from the given XML string. More...
 
void save_to_stream (std::ostream *ptr) const
 Invokes save() and directs the resulting XML text to the given stream. More...
 
ErrorStack load_from_file (const fs::Path &path)
 Load the content of this object from the specified XML file. More...
 
ErrorStack save_to_file (const fs::Path &path) const
 Atomically and durably writes out this object to the specified XML file. More...
 

Public Attributes

Epoch::EpochInteger current_epoch_
 Current epoch of the entire engine. More...
 
Epoch::EpochInteger durable_epoch_
 Latest epoch whose logs were all flushed to disk. More...
 
Epoch::EpochInteger earliest_epoch_
 The earliest epoch that can exist in this system. More...
 
snapshot::SnapshotId latest_snapshot_id_
 The most recent complete snapshot. More...
 
Epoch::EpochInteger latest_snapshot_epoch_
 The most recently snapshot-ed epoch, all logs upto this epoch is safe to delete. More...
 
uint64_t meta_log_oldest_offset_
 Offset from which metadata log entries are not gleaned yet. More...
 
uint64_t meta_log_durable_offset_
 Offset upto which metadata log entries are fsynced. More...
 
std::vector< log::LogFileOrdinaloldest_log_files_
 Ordinal of the oldest active log file in each logger. More...
 
std::vector< uint64_t > oldest_log_files_offset_begin_
 Indicates the inclusive beginning of active region in the oldest log file. More...
 
std::vector< log::LogFileOrdinalcurrent_log_files_
 Indicates the log file each logger is currently appending to. More...
 
std::vector< uint64_t > current_log_files_offset_durable_
 Indicates the exclusive end of durable region in the current log file. More...
 

Friends

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

Additional Inherited Members

- Static Public Member Functions inherited from foedus::externalize::Externalizable
static ErrorStack insert_comment (tinyxml2::XMLElement *element, const std::string &comment)
 
static ErrorStack append_comment (tinyxml2::XMLElement *parent, const std::string &comment)
 
static ErrorStack create_element (tinyxml2::XMLElement *parent, const std::string &name, tinyxml2::XMLElement **out)
 
template<typename T >
static ErrorStack add_element (tinyxml2::XMLElement *parent, const std::string &tag, const std::string &comment, T value)
 Only declaration in header. More...
 
template<uint MAXLEN, typename CHAR >
static ErrorStack add_element (tinyxml2::XMLElement *parent, const std::string &tag, const std::string &comment, const assorted::FixedString< MAXLEN, CHAR > &value)
 
template<typename T >
static ErrorStack add_element (tinyxml2::XMLElement *parent, const std::string &tag, const std::string &comment, const std::vector< T > &value)
 vector version More...
 
template<typename ENUM >
static ErrorStack add_enum_element (tinyxml2::XMLElement *parent, const std::string &tag, const std::string &comment, ENUM value)
 enum version More...
 
static ErrorStack add_child_element (tinyxml2::XMLElement *parent, const std::string &tag, const std::string &comment, const Externalizable &child)
 child Externalizable version More...
 
template<typename T >
static ErrorStack get_element (tinyxml2::XMLElement *parent, const std::string &tag, T *out, bool optional=false, T value=0)
 Only declaration in header. More...
 
static ErrorStack get_element (tinyxml2::XMLElement *parent, const std::string &tag, std::string *out, bool optional=false, const char *value="")
 string type is bit special. More...
 
template<uint MAXLEN, typename CHAR >
static ErrorStack get_element (tinyxml2::XMLElement *parent, const std::string &tag, assorted::FixedString< MAXLEN, CHAR > *out, bool optional=false, const assorted::FixedString< MAXLEN, CHAR > &value=assorted::FixedString< MAXLEN, CHAR >())
 
template<typename ENUM >
static ErrorStack get_enum_element (tinyxml2::XMLElement *parent, const std::string &tag, ENUM *out, bool optional=false, ENUM default_value=static_cast< ENUM >(0))
 enum version More...
 
template<typename T >
static ErrorStack get_element (tinyxml2::XMLElement *parent, const std::string &tag, std::vector< T > *out, bool optional=false)
 vector version. More...
 
static ErrorStack get_child_element (tinyxml2::XMLElement *parent, const std::string &tag, Externalizable *child, bool optional=false)
 child Externalizable version More...
 

Constructor & Destructor Documentation

foedus::savepoint::Savepoint::Savepoint ( )

Constructs an empty savepoint.

Definition at line 22 of file savepoint.cpp.

22  {
23 }

Member Function Documentation

void foedus::savepoint::Savepoint::assert_epoch_values ( ) const

Check invariants on current_epoch_/durable_epoch_.

Definition at line 25 of file savepoint.cpp.

References ASSERT_ND, current_epoch_, durable_epoch_, earliest_epoch_, and latest_snapshot_epoch_.

Referenced by consistent(), load(), populate_empty(), save(), and foedus::savepoint::SavepointManagerPimpl::savepoint_main().

25  {
26  ASSERT_ND(Epoch(current_epoch_).is_valid());
27  ASSERT_ND(Epoch(durable_epoch_).is_valid());
28  ASSERT_ND(Epoch(earliest_epoch_).is_valid());
29  ASSERT_ND(Epoch(current_epoch_) > Epoch(durable_epoch_));
30  ASSERT_ND(Epoch(current_epoch_) >= Epoch(earliest_epoch_));
31  ASSERT_ND(Epoch(durable_epoch_) >= Epoch(earliest_epoch_));
32  ASSERT_ND(!Epoch(latest_snapshot_epoch_).is_valid() ||
33  Epoch(latest_snapshot_epoch_) <= Epoch(durable_epoch_));
34 }
Epoch::EpochInteger current_epoch_
Current epoch of the entire engine.
Definition: savepoint.hpp:53
Epoch::EpochInteger latest_snapshot_epoch_
The most recently snapshot-ed epoch, all logs upto this epoch is safe to delete.
Definition: savepoint.hpp:84
Epoch::EpochInteger earliest_epoch_
The earliest epoch that can exist in this system.
Definition: savepoint.hpp:72
#define ASSERT_ND(x)
A warning-free wrapper macro of assert() that has no performance effect in release mode even when 'x'...
Definition: assert_nd.hpp:72
Epoch::EpochInteger durable_epoch_
Latest epoch whose logs were all flushed to disk.
Definition: savepoint.hpp:65

Here is the caller graph for this function:

void foedus::savepoint::Savepoint::assign ( const foedus::externalize::Externalizable other)
inlineoverridevirtual

Polymorphic assign operator.

This should invoke operator= of the derived class.

Parameters
[in]otherassigned value. It must be dynamic-castable to the assignee class.

Implements foedus::externalize::Externalizable.

Definition at line 116 of file savepoint.hpp.

bool foedus::savepoint::Savepoint::consistent ( log::LoggerId  logger_count) const
inline

Tells if the variables are consistent.

Definition at line 121 of file savepoint.hpp.

References assert_epoch_values().

Referenced by foedus::savepoint::SavepointManagerPimpl::initialize_once().

121  {
123  return (current_epoch_ >= durable_epoch_
127  && oldest_log_files_.size() == logger_count
128  && oldest_log_files_offset_begin_.size() == logger_count
129  && current_log_files_.size() == logger_count
130  && current_log_files_offset_durable_.size() == logger_count);
131  }
std::vector< uint64_t > oldest_log_files_offset_begin_
Indicates the inclusive beginning of active region in the oldest log file.
Definition: savepoint.hpp:104
std::vector< uint64_t > current_log_files_offset_durable_
Indicates the exclusive end of durable region in the current log file.
Definition: savepoint.hpp:114
Epoch::EpochInteger current_epoch_
Current epoch of the entire engine.
Definition: savepoint.hpp:53
uint64_t meta_log_oldest_offset_
Offset from which metadata log entries are not gleaned yet.
Definition: savepoint.hpp:87
uint64_t meta_log_durable_offset_
Offset upto which metadata log entries are fsynced.
Definition: savepoint.hpp:89
Epoch::EpochInteger earliest_epoch_
The earliest epoch that can exist in this system.
Definition: savepoint.hpp:72
std::vector< log::LogFileOrdinal > oldest_log_files_
Ordinal of the oldest active log file in each logger.
Definition: savepoint.hpp:101
void assert_epoch_values() const
Check invariants on current_epoch_/durable_epoch_.
Definition: savepoint.cpp:25
Epoch::EpochInteger durable_epoch_
Latest epoch whose logs were all flushed to disk.
Definition: savepoint.hpp:65
std::vector< log::LogFileOrdinal > current_log_files_
Indicates the log file each logger is currently appending to.
Definition: savepoint.hpp:107

Here is the call graph for this function:

Here is the caller graph for this function:

Epoch foedus::savepoint::Savepoint::get_current_epoch ( ) const
inline

Definition at line 134 of file savepoint.hpp.

134 { return Epoch(current_epoch_); }
Epoch::EpochInteger current_epoch_
Current epoch of the entire engine.
Definition: savepoint.hpp:53
Epoch foedus::savepoint::Savepoint::get_durable_epoch ( ) const
inline

Definition at line 133 of file savepoint.hpp.

133 { return Epoch(durable_epoch_); }
Epoch::EpochInteger durable_epoch_
Latest epoch whose logs were all flushed to disk.
Definition: savepoint.hpp:65
Epoch foedus::savepoint::Savepoint::get_earliest_epoch ( ) const
inline

Definition at line 135 of file savepoint.hpp.

135 { return Epoch(earliest_epoch_); }
Epoch::EpochInteger earliest_epoch_
The earliest epoch that can exist in this system.
Definition: savepoint.hpp:72
const char* foedus::savepoint::Savepoint::get_tag_name ( ) const
inlineoverridevirtual

Returns an XML tag name for this object as a root element.

We might want to give a different name for same externalizable objects, so this is used only when it is the root element of xml.

Implements foedus::externalize::Externalizable.

Definition at line 116 of file savepoint.hpp.

ErrorStack foedus::savepoint::Savepoint::load ( tinyxml2::XMLElement *  element)
overridevirtual

Reads the content of this object from the given XML element.

Parameters
[in]elementthe XML element that represents this object

Expect errors due to missing-elements, out-of-range values, etc.

Implements foedus::externalize::Externalizable.

Definition at line 36 of file savepoint.cpp.

References assert_epoch_values(), current_epoch_, current_log_files_, current_log_files_offset_durable_, durable_epoch_, earliest_epoch_, EXTERNALIZE_LOAD_ELEMENT, foedus::kRetOk, latest_snapshot_epoch_, latest_snapshot_id_, meta_log_durable_offset_, meta_log_oldest_offset_, oldest_log_files_, and oldest_log_files_offset_begin_.

36  {
49  return kRetOk;
50 }
#define EXTERNALIZE_LOAD_ELEMENT(element, attribute)
Reads a child xml element to load a member variable of this object.
std::vector< uint64_t > oldest_log_files_offset_begin_
Indicates the inclusive beginning of active region in the oldest log file.
Definition: savepoint.hpp:104
std::vector< uint64_t > current_log_files_offset_durable_
Indicates the exclusive end of durable region in the current log file.
Definition: savepoint.hpp:114
Epoch::EpochInteger current_epoch_
Current epoch of the entire engine.
Definition: savepoint.hpp:53
uint64_t meta_log_oldest_offset_
Offset from which metadata log entries are not gleaned yet.
Definition: savepoint.hpp:87
uint64_t meta_log_durable_offset_
Offset upto which metadata log entries are fsynced.
Definition: savepoint.hpp:89
Epoch::EpochInteger latest_snapshot_epoch_
The most recently snapshot-ed epoch, all logs upto this epoch is safe to delete.
Definition: savepoint.hpp:84
Epoch::EpochInteger earliest_epoch_
The earliest epoch that can exist in this system.
Definition: savepoint.hpp:72
const ErrorStack kRetOk
Normal return value for no-error case.
std::vector< log::LogFileOrdinal > oldest_log_files_
Ordinal of the oldest active log file in each logger.
Definition: savepoint.hpp:101
void assert_epoch_values() const
Check invariants on current_epoch_/durable_epoch_.
Definition: savepoint.cpp:25
snapshot::SnapshotId latest_snapshot_id_
The most recent complete snapshot.
Definition: savepoint.hpp:78
Epoch::EpochInteger durable_epoch_
Latest epoch whose logs were all flushed to disk.
Definition: savepoint.hpp:65
std::vector< log::LogFileOrdinal > current_log_files_
Indicates the log file each logger is currently appending to.
Definition: savepoint.hpp:107

Here is the call graph for this function:

void foedus::savepoint::Savepoint::populate_empty ( log::LoggerId  logger_count)

Populate variables as an initial state.

Definition at line 79 of file savepoint.cpp.

References assert_epoch_values(), current_epoch_, current_log_files_, current_log_files_offset_durable_, durable_epoch_, earliest_epoch_, foedus::Epoch::kEpochInitialCurrent, foedus::Epoch::kEpochInitialDurable, foedus::Epoch::kEpochInvalid, foedus::snapshot::kNullSnapshotId, latest_snapshot_epoch_, latest_snapshot_id_, meta_log_durable_offset_, meta_log_oldest_offset_, oldest_log_files_, and oldest_log_files_offset_begin_.

Referenced by foedus::savepoint::SavepointManagerPimpl::initialize_once().

79  {
87  oldest_log_files_.resize(logger_count, 0);
88  oldest_log_files_offset_begin_.resize(logger_count, 0);
89  current_log_files_.resize(logger_count, 0);
90  current_log_files_offset_durable_.resize(logger_count, 0);
92 }
std::vector< uint64_t > oldest_log_files_offset_begin_
Indicates the inclusive beginning of active region in the oldest log file.
Definition: savepoint.hpp:104
The first epoch (before wrap-around) that might have transactions is ep-3.
Definition: epoch.hpp:77
std::vector< uint64_t > current_log_files_offset_durable_
Indicates the exclusive end of durable region in the current log file.
Definition: savepoint.hpp:114
Epoch::EpochInteger current_epoch_
Current epoch of the entire engine.
Definition: savepoint.hpp:53
uint64_t meta_log_oldest_offset_
Offset from which metadata log entries are not gleaned yet.
Definition: savepoint.hpp:87
uint64_t meta_log_durable_offset_
Offset upto which metadata log entries are fsynced.
Definition: savepoint.hpp:89
Zero is always reserved for invalid epoch.
Definition: epoch.hpp:68
Epoch::EpochInteger latest_snapshot_epoch_
The most recently snapshot-ed epoch, all logs upto this epoch is safe to delete.
Definition: savepoint.hpp:84
const SnapshotId kNullSnapshotId
Definition: snapshot_id.hpp:45
Epoch::EpochInteger earliest_epoch_
The earliest epoch that can exist in this system.
Definition: savepoint.hpp:72
std::vector< log::LogFileOrdinal > oldest_log_files_
Ordinal of the oldest active log file in each logger.
Definition: savepoint.hpp:101
As there is no transaction in ep-1, initial durable_epoch is 1.
Definition: epoch.hpp:70
void assert_epoch_values() const
Check invariants on current_epoch_/durable_epoch_.
Definition: savepoint.cpp:25
snapshot::SnapshotId latest_snapshot_id_
The most recent complete snapshot.
Definition: savepoint.hpp:78
Epoch::EpochInteger durable_epoch_
Latest epoch whose logs were all flushed to disk.
Definition: savepoint.hpp:65
std::vector< log::LogFileOrdinal > current_log_files_
Indicates the log file each logger is currently appending to.
Definition: savepoint.hpp:107

Here is the call graph for this function:

Here is the caller graph for this function:

ErrorStack foedus::savepoint::Savepoint::save ( tinyxml2::XMLElement *  element) const
overridevirtual

Writes the content of this object to the given XML element.

Parameters
[in]elementthe XML element that represents this object

Expect only out-of-memory error. We receive the XML element this object will represent, so this method does not determine the XML element name of itself. The parent object determines children's tag names because one parent object might have multiple child objects of the same type with different XML element name.

Implements foedus::externalize::Externalizable.

Definition at line 52 of file savepoint.cpp.

References assert_epoch_values(), CHECK_ERROR, current_epoch_, current_log_files_, current_log_files_offset_durable_, durable_epoch_, earliest_epoch_, EXTERNALIZE_SAVE_ELEMENT, foedus::externalize::Externalizable::insert_comment(), foedus::kRetOk, latest_snapshot_epoch_, latest_snapshot_id_, meta_log_durable_offset_, meta_log_oldest_offset_, oldest_log_files_, and oldest_log_files_offset_begin_.

52  {
54  CHECK_ERROR(insert_comment(element, "progress of the entire engine"));
55 
56  EXTERNALIZE_SAVE_ELEMENT(element, current_epoch_, "Current epoch of the entire engine.");
58  "Latest epoch whose logs were all flushed to disk");
60  "The earliest epoch that can exist in this system");
61  EXTERNALIZE_SAVE_ELEMENT(element, latest_snapshot_id_, "The most recent complete snapshot.");
63  "The most recently snapshot-ed epoch, all logs upto this epoch is safe to delete.");
65  "Offset from which metadata log entries are not gleaned yet");
67  "Offset upto which metadata log entries are fsynced");
69  "Ordinal of the oldest active log file in each logger");
71  "Indicates the inclusive beginning of active region in the oldest log file");
73  "Indicates the log file each logger is currently appending to");
75  "Indicates the exclusive end of durable region in the current log file");
76  return kRetOk;
77 }
std::vector< uint64_t > oldest_log_files_offset_begin_
Indicates the inclusive beginning of active region in the oldest log file.
Definition: savepoint.hpp:104
std::vector< uint64_t > current_log_files_offset_durable_
Indicates the exclusive end of durable region in the current log file.
Definition: savepoint.hpp:114
Epoch::EpochInteger current_epoch_
Current epoch of the entire engine.
Definition: savepoint.hpp:53
static ErrorStack insert_comment(tinyxml2::XMLElement *element, const std::string &comment)
uint64_t meta_log_oldest_offset_
Offset from which metadata log entries are not gleaned yet.
Definition: savepoint.hpp:87
uint64_t meta_log_durable_offset_
Offset upto which metadata log entries are fsynced.
Definition: savepoint.hpp:89
Epoch::EpochInteger latest_snapshot_epoch_
The most recently snapshot-ed epoch, all logs upto this epoch is safe to delete.
Definition: savepoint.hpp:84
#define CHECK_ERROR(x)
This macro calls x and checks its returned value.
Epoch::EpochInteger earliest_epoch_
The earliest epoch that can exist in this system.
Definition: savepoint.hpp:72
const ErrorStack kRetOk
Normal return value for no-error case.
std::vector< log::LogFileOrdinal > oldest_log_files_
Ordinal of the oldest active log file in each logger.
Definition: savepoint.hpp:101
void assert_epoch_values() const
Check invariants on current_epoch_/durable_epoch_.
Definition: savepoint.cpp:25
#define EXTERNALIZE_SAVE_ELEMENT(element, attribute, comment)
Adds an xml element to represent a member variable of this object.
snapshot::SnapshotId latest_snapshot_id_
The most recent complete snapshot.
Definition: savepoint.hpp:78
Epoch::EpochInteger durable_epoch_
Latest epoch whose logs were all flushed to disk.
Definition: savepoint.hpp:65
std::vector< log::LogFileOrdinal > current_log_files_
Indicates the log file each logger is currently appending to.
Definition: savepoint.hpp:107

Here is the call graph for this function:

Friends And Related Function Documentation

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

Definition at line 116 of file savepoint.hpp.

Member Data Documentation

Epoch::EpochInteger foedus::savepoint::Savepoint::current_epoch_

Current epoch of the entire engine.

This value is advanced by transaction manager periodically. This is equal or larger than all other epoch values below.

Invariant
Epoch(current_epoch_).is_valid()

Definition at line 53 of file savepoint.hpp.

Referenced by assert_epoch_values(), foedus::savepoint::SavepointManagerPimpl::initialize_once(), load(), populate_empty(), save(), foedus::savepoint::SavepointManagerPimpl::savepoint_main(), and foedus::savepoint::FixedSavepoint::update().

std::vector<log::LogFileOrdinal> foedus::savepoint::Savepoint::current_log_files_

Indicates the log file each logger is currently appending to.

Definition at line 107 of file savepoint.hpp.

Referenced by foedus::log::LoggerRef::copy_logger_state(), foedus::log::LogManagerPimpl::copy_logger_states(), load(), populate_empty(), save(), and foedus::savepoint::FixedSavepoint::update().

std::vector<uint64_t> foedus::savepoint::Savepoint::current_log_files_offset_durable_

Indicates the exclusive end of durable region in the current log file.

In other words, epochs are larger than durable_epoch_ from this offset. During restart, current log files are truncated to this size to discard incomplete logs.

Definition at line 114 of file savepoint.hpp.

Referenced by foedus::log::LoggerRef::copy_logger_state(), foedus::log::LogManagerPimpl::copy_logger_states(), load(), populate_empty(), save(), and foedus::savepoint::FixedSavepoint::update().

Epoch::EpochInteger foedus::savepoint::Savepoint::durable_epoch_

Latest epoch whose logs were all flushed to disk.

Upto this epoch, we can guarantee durability. In other words, transactions are not deemed as "done" until this value reaches their epoch values issued on commit time. While the engine restarts, all log entries in log files after this epoch are truncated because there might be some logger that did not finish its writing.

Invariant
Epoch(durable_epoch_).is_valid()
Epoch(current_epoch_) > Epoch(durable_epoch_)

Definition at line 65 of file savepoint.hpp.

Referenced by assert_epoch_values(), foedus::savepoint::SavepointManagerPimpl::initialize_once(), load(), populate_empty(), save(), foedus::savepoint::SavepointManagerPimpl::savepoint_main(), and foedus::savepoint::FixedSavepoint::update().

Epoch::EpochInteger foedus::savepoint::Savepoint::earliest_epoch_

The earliest epoch that can exist in this system.

it advances only after we do a system-wide compaction. Otherwise, it's kEpochInitialDurable, which is indeed the earliest until the epoch wraps around.

Definition at line 72 of file savepoint.hpp.

Referenced by assert_epoch_values(), foedus::savepoint::SavepointManagerPimpl::initialize_once(), load(), populate_empty(), save(), foedus::savepoint::SavepointManagerPimpl::savepoint_main(), and foedus::savepoint::FixedSavepoint::update().

Epoch::EpochInteger foedus::savepoint::Savepoint::latest_snapshot_epoch_

The most recently snapshot-ed epoch, all logs upto this epoch is safe to delete.

If not snapshot has been taken, invalid epoch. This is equivalent to snapshots_.back().valid_entil_epoch_ with empty check.

Definition at line 84 of file savepoint.hpp.

Referenced by assert_epoch_values(), load(), populate_empty(), save(), foedus::savepoint::SavepointManagerPimpl::savepoint_main(), and foedus::savepoint::FixedSavepoint::update().

snapshot::SnapshotId foedus::savepoint::Savepoint::latest_snapshot_id_

The most recent complete snapshot.

kNullSnapshotId if no snapshot has been taken yet.

Definition at line 78 of file savepoint.hpp.

Referenced by load(), populate_empty(), save(), foedus::savepoint::SavepointManagerPimpl::savepoint_main(), and foedus::savepoint::FixedSavepoint::update().

uint64_t foedus::savepoint::Savepoint::meta_log_durable_offset_

Offset upto which metadata log entries are fsynced.

Definition at line 89 of file savepoint.hpp.

Referenced by load(), populate_empty(), save(), foedus::savepoint::SavepointManagerPimpl::savepoint_main(), and foedus::savepoint::FixedSavepoint::update().

uint64_t foedus::savepoint::Savepoint::meta_log_oldest_offset_

Offset from which metadata log entries are not gleaned yet.

Definition at line 87 of file savepoint.hpp.

Referenced by load(), populate_empty(), save(), foedus::savepoint::SavepointManagerPimpl::savepoint_main(), and foedus::savepoint::FixedSavepoint::update().

std::vector<log::LogFileOrdinal> foedus::savepoint::Savepoint::oldest_log_files_

Ordinal of the oldest active log file in each logger.

Invariant
oldest_log_files_[x] <= current_log_files_[x]

Each logger writes out files suffixed with ordinal (eg ".0", ".1"...). The older logs files are deactivated and deleted after log gleaner consumes them. This variable indicates the oldest active file for each logger.

Definition at line 101 of file savepoint.hpp.

Referenced by foedus::log::LoggerRef::copy_logger_state(), foedus::log::LogManagerPimpl::copy_logger_states(), load(), populate_empty(), save(), and foedus::savepoint::FixedSavepoint::update().

std::vector<uint64_t> foedus::savepoint::Savepoint::oldest_log_files_offset_begin_

Indicates the inclusive beginning of active region in the oldest log file.

Definition at line 104 of file savepoint.hpp.

Referenced by foedus::log::LoggerRef::copy_logger_state(), foedus::log::LogManagerPimpl::copy_logger_states(), load(), populate_empty(), save(), and foedus::savepoint::FixedSavepoint::update().


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