libfoedus-core
FOEDUS Core Library
|
Pimpl object of SavepointManager. More...
Pimpl object of SavepointManager.
A private pimpl object for SavepointManager. Do not include this header from a client program unless you know what you are doing.
Definition at line 110 of file savepoint_manager_pimpl.hpp.
#include <savepoint_manager_pimpl.hpp>
Public Attributes | |
Engine *const | engine_ |
SavepointManagerControlBlock * | control_block_ |
std::thread | savepoint_thread_ |
The thread to take savepoints. More... | |
std::atomic< bool > | savepoint_thread_stop_requested_ |
fs::Path | savepoint_path_ |
Path of the savepoint file. More... | |
Savepoint | savepoint_ |
The current progress of the entire engine. More... | |
|
delete |
|
inlineexplicit |
Definition at line 113 of file savepoint_manager_pimpl.hpp.
|
inline |
Definition at line 119 of file savepoint_manager_pimpl.hpp.
References control_block_, and foedus::savepoint::SavepointManagerControlBlock::earliest_epoch_.
Referenced by foedus::savepoint::SavepointManager::get_earliest_epoch().
|
inline |
Definition at line 117 of file savepoint_manager_pimpl.hpp.
References control_block_, and foedus::savepoint::SavepointManagerControlBlock::initial_current_epoch_.
Referenced by foedus::savepoint::SavepointManager::get_initial_current_epoch().
|
inline |
Definition at line 118 of file savepoint_manager_pimpl.hpp.
References control_block_, and foedus::savepoint::SavepointManagerControlBlock::initial_durable_epoch_.
Referenced by foedus::savepoint::SavepointManager::get_initial_durable_epoch().
|
inline |
Definition at line 124 of file savepoint_manager_pimpl.hpp.
References control_block_, foedus::savepoint::FixedSavepoint::latest_snapshot_epoch_, and foedus::savepoint::SavepointManagerControlBlock::savepoint_.
Referenced by foedus::savepoint::SavepointManager::get_latest_snapshot_epoch(), and take_savepoint_after_snapshot().
|
inline |
Definition at line 121 of file savepoint_manager_pimpl.hpp.
References control_block_, foedus::savepoint::FixedSavepoint::latest_snapshot_id_, and foedus::savepoint::SavepointManagerControlBlock::savepoint_.
Referenced by foedus::savepoint::SavepointManager::get_latest_snapshot_id(), and take_savepoint_after_snapshot().
LoggerSavepointInfo foedus::savepoint::SavepointManagerPimpl::get_logger_savepoint | ( | log::LoggerId | logger_id | ) |
Definition at line 151 of file savepoint_manager_pimpl.cpp.
References ASSERT_ND, control_block_, foedus::savepoint::FixedSavepoint::logger_info_, foedus::savepoint::SavepointManagerControlBlock::savepoint_, savepoint_, and foedus::savepoint::SavepointManagerControlBlock::savepoint_mutex_.
Referenced by foedus::savepoint::SavepointManager::get_logger_savepoint().
|
inline |
Definition at line 127 of file savepoint_manager_pimpl.hpp.
References control_block_, and foedus::savepoint::SavepointManagerControlBlock::requested_durable_epoch_.
Referenced by savepoint_main(), and take_savepoint().
|
inline |
Definition at line 120 of file savepoint_manager_pimpl.hpp.
References control_block_, and foedus::savepoint::SavepointManagerControlBlock::saved_durable_epoch_.
Referenced by foedus::savepoint::SavepointManager::get_saved_durable_epoch(), and take_savepoint().
|
overridevirtual |
Implements foedus::DefaultInitializable.
Definition at line 37 of file savepoint_manager_pimpl.cpp.
References CHECK_ERROR, foedus::savepoint::Savepoint::consistent(), control_block_, foedus::savepoint::Savepoint::current_epoch_, foedus::savepoint::Savepoint::durable_epoch_, foedus::savepoint::SavepointManagerControlBlock::earliest_epoch_, foedus::savepoint::Savepoint::earliest_epoch_, engine_, ERROR_STACK, ERROR_STACK_MSG, foedus::fs::exists(), foedus::Engine::get_options(), foedus::soc::SocManager::get_shared_memory_repo(), foedus::Engine::get_soc_manager(), foedus::thread::ThreadOptions::group_count_, foedus::savepoint::SavepointManagerControlBlock::initial_current_epoch_, foedus::savepoint::SavepointManagerControlBlock::initial_durable_epoch_, foedus::savepoint::SavepointManagerControlBlock::initialize(), foedus::Engine::is_master(), foedus::kErrorCodeSpInconsistentSavepoint, foedus::kErrorCodeTimeout, foedus::kRetOk, foedus::externalize::Externalizable::load_from_file(), foedus::EngineOptions::log_, foedus::log::LogOptions::loggers_per_node_, foedus::savepoint::SavepointManagerControlBlock::master_initialized_, foedus::assorted::memory_fence_release(), foedus::savepoint::Savepoint::populate_empty(), foedus::savepoint::SavepointManagerControlBlock::requested_durable_epoch_, foedus::externalize::Externalizable::save_to_file(), foedus::savepoint::SavepointManagerControlBlock::saved_durable_epoch_, foedus::EngineOptions::savepoint_, savepoint_, savepoint_main(), foedus::savepoint::SavepointOptions::savepoint_path_, savepoint_path_, savepoint_thread_, savepoint_thread_stop_requested_, foedus::assorted::FixedString< MAXLEN, CHAR >::str(), foedus::EngineOptions::thread_, and update_shared_savepoint().
|
inline |
Definition at line 143 of file savepoint_manager_pimpl.hpp.
References savepoint_thread_stop_requested_.
Referenced by savepoint_main().
void foedus::savepoint::SavepointManagerPimpl::savepoint_main | ( | ) |
Definition at line 158 of file savepoint_manager_pimpl.cpp.
References foedus::soc::SharedPolling::acquire_ticket(), foedus::log::LogManager::announce_new_durable_global_epoch(), foedus::savepoint::Savepoint::assert_epoch_values(), COERCE_ERROR, control_block_, foedus::log::LogManager::copy_logger_states(), foedus::savepoint::Savepoint::current_epoch_, foedus::savepoint::Savepoint::durable_epoch_, foedus::log::MetaLogControlBlock::durable_offset_, foedus::savepoint::Savepoint::earliest_epoch_, engine_, foedus::xct::XctManager::get_current_global_epoch(), foedus::Engine::get_earliest_epoch(), foedus::soc::SharedMemoryRepo::get_global_memory_anchors(), foedus::Engine::get_log_manager(), get_requested_durable_epoch(), foedus::soc::SocManager::get_shared_memory_repo(), foedus::Engine::get_soc_manager(), foedus::Engine::get_xct_manager(), is_stop_requested(), foedus::Epoch::kEpochInvalid, foedus::snapshot::kNullSnapshotId, foedus::savepoint::Savepoint::latest_snapshot_epoch_, foedus::savepoint::FixedSavepoint::latest_snapshot_epoch_, foedus::savepoint::Savepoint::latest_snapshot_id_, foedus::savepoint::FixedSavepoint::latest_snapshot_id_, foedus::assorted::memory_fence_release(), foedus::savepoint::Savepoint::meta_log_durable_offset_, foedus::savepoint::Savepoint::meta_log_oldest_offset_, foedus::soc::GlobalMemoryAnchors::meta_logger_memory_, foedus::savepoint::SavepointManagerControlBlock::new_snapshot_epoch_, foedus::savepoint::SavepointManagerControlBlock::new_snapshot_id_, foedus::log::MetaLogControlBlock::oldest_offset_, foedus::savepoint::SavepointManagerControlBlock::requested_durable_epoch_, foedus::savepoint::SavepointManagerControlBlock::save_done_event_, foedus::externalize::Externalizable::save_to_file(), foedus::savepoint::SavepointManagerControlBlock::save_wakeup_, foedus::savepoint::SavepointManagerControlBlock::saved_durable_epoch_, foedus::savepoint::SavepointManagerControlBlock::savepoint_, savepoint_path_, foedus::soc::SharedPolling::signal(), foedus::soc::SharedPolling::timedwait(), update_shared_savepoint(), and foedus::Epoch::value().
Referenced by initialize_once().
ErrorStack foedus::savepoint::SavepointManagerPimpl::take_savepoint | ( | Epoch | new_global_durable_epoch | ) |
Definition at line 102 of file savepoint_manager_pimpl.cpp.
References foedus::soc::SharedPolling::acquire_ticket(), control_block_, get_requested_durable_epoch(), get_saved_durable_epoch(), foedus::kRetOk, foedus::savepoint::SavepointManagerControlBlock::requested_durable_epoch_, foedus::savepoint::SavepointManagerControlBlock::save_done_event_, foedus::savepoint::SavepointManagerControlBlock::save_wakeup_, foedus::soc::SharedPolling::signal(), foedus::Epoch::value(), and foedus::soc::SharedPolling::wait().
Referenced by foedus::savepoint::SavepointManager::take_savepoint().
ErrorStack foedus::savepoint::SavepointManagerPimpl::take_savepoint_after_snapshot | ( | snapshot::SnapshotId | new_snapshot_id, |
Epoch | new_snapshot_epoch | ||
) |
Definition at line 120 of file savepoint_manager_pimpl.cpp.
References foedus::soc::SharedPolling::acquire_ticket(), ASSERT_ND, control_block_, get_latest_snapshot_epoch(), get_latest_snapshot_id(), foedus::kRetOk, foedus::savepoint::SavepointManagerControlBlock::new_snapshot_epoch_, foedus::savepoint::SavepointManagerControlBlock::new_snapshot_id_, foedus::savepoint::SavepointManagerControlBlock::save_done_event_, foedus::savepoint::SavepointManagerControlBlock::save_wakeup_, foedus::soc::SharedPolling::signal(), foedus::Epoch::value(), and foedus::soc::SharedPolling::wait().
Referenced by foedus::savepoint::SavepointManager::take_savepoint_after_snapshot().
|
overridevirtual |
Implements foedus::DefaultInitializable.
Definition at line 86 of file savepoint_manager_pimpl.cpp.
References control_block_, engine_, foedus::Engine::is_master(), foedus::savepoint::SavepointManagerControlBlock::save_wakeup_, savepoint_thread_, savepoint_thread_stop_requested_, foedus::soc::SharedPolling::signal(), SUMMARIZE_ERROR_BATCH, and foedus::savepoint::SavepointManagerControlBlock::uninitialize().
void foedus::savepoint::SavepointManagerPimpl::update_shared_savepoint | ( | const Savepoint & | src | ) |
Definition at line 141 of file savepoint_manager_pimpl.cpp.
References control_block_, engine_, foedus::Engine::get_options(), foedus::thread::ThreadOptions::group_count_, foedus::EngineOptions::log_, foedus::log::LogOptions::loggers_per_node_, foedus::savepoint::SavepointManagerControlBlock::savepoint_, foedus::savepoint::SavepointManagerControlBlock::savepoint_mutex_, foedus::EngineOptions::thread_, and foedus::savepoint::FixedSavepoint::update().
Referenced by initialize_once(), and savepoint_main().
SavepointManagerControlBlock* foedus::savepoint::SavepointManagerPimpl::control_block_ |
Definition at line 138 of file savepoint_manager_pimpl.hpp.
Referenced by foedus::savepoint::SavepointManager::change_meta_logger_durable_offset(), get_earliest_epoch(), get_initial_current_epoch(), get_initial_durable_epoch(), get_latest_snapshot_epoch(), get_latest_snapshot_id(), get_logger_savepoint(), foedus::savepoint::SavepointManager::get_meta_logger_offsets(), get_requested_durable_epoch(), get_saved_durable_epoch(), initialize_once(), savepoint_main(), take_savepoint(), take_savepoint_after_snapshot(), uninitialize_once(), and update_shared_savepoint().
Engine* const foedus::savepoint::SavepointManagerPimpl::engine_ |
Definition at line 137 of file savepoint_manager_pimpl.hpp.
Referenced by initialize_once(), savepoint_main(), uninitialize_once(), and update_shared_savepoint().
Savepoint foedus::savepoint::SavepointManagerPimpl::savepoint_ |
The current progress of the entire engine.
Definition at line 156 of file savepoint_manager_pimpl.hpp.
Referenced by get_logger_savepoint(), and initialize_once().
fs::Path foedus::savepoint::SavepointManagerPimpl::savepoint_path_ |
Path of the savepoint file.
Definition at line 151 of file savepoint_manager_pimpl.hpp.
Referenced by initialize_once(), and savepoint_main().
std::thread foedus::savepoint::SavepointManagerPimpl::savepoint_thread_ |
The thread to take savepoints.
Definition at line 146 of file savepoint_manager_pimpl.hpp.
Referenced by initialize_once(), and uninitialize_once().
std::atomic<bool> foedus::savepoint::SavepointManagerPimpl::savepoint_thread_stop_requested_ |
Definition at line 148 of file savepoint_manager_pimpl.hpp.
Referenced by initialize_once(), is_stop_requested(), and uninitialize_once().