libfoedus-core
FOEDUS Core Library
|
Pimpl object of LogManager. More...
Pimpl object of LogManager.
A private pimpl object for LogManager. Do not include this header from a client program unless you know what you are doing.
Definition at line 79 of file log_manager_pimpl.hpp.
#include <log_manager_pimpl.hpp>
Public Attributes | |
Engine *const | engine_ |
thread::ThreadGroupId | groups_ |
uint16_t | loggers_per_node_ |
std::vector< Logger * > | loggers_ |
Local log writers. More... | |
std::vector< LoggerRef > | logger_refs_ |
All log writers. More... | |
MetaLogger * | meta_logger_ |
Metadata log writer. More... | |
MetaLogBuffer | meta_buffer_ |
Metadata log buffer. More... | |
LogManagerControlBlock * | control_block_ |
|
delete |
|
explicit |
Definition at line 46 of file log_manager_pimpl.cpp.
void foedus::log::LogManagerPimpl::announce_new_durable_global_epoch | ( | Epoch | new_epoch | ) |
Definition at line 268 of file log_manager_pimpl.cpp.
References ASSERT_ND, control_block_, foedus::log::LogManagerControlBlock::durable_global_epoch_, foedus::log::LogManagerControlBlock::durable_global_epoch_advanced_, foedus::assorted::memory_fence_release(), foedus::soc::SharedPolling::signal(), and foedus::Epoch::value().
Referenced by foedus::log::LogManager::announce_new_durable_global_epoch().
void foedus::log::LogManagerPimpl::copy_logger_states | ( | savepoint::Savepoint * | new_savepoint | ) |
Definition at line 276 of file log_manager_pimpl.cpp.
References foedus::savepoint::Savepoint::current_log_files_, foedus::savepoint::Savepoint::current_log_files_offset_durable_, logger_refs_, foedus::savepoint::Savepoint::oldest_log_files_, and foedus::savepoint::Savepoint::oldest_log_files_offset_begin_.
Referenced by foedus::log::LogManager::copy_logger_states().
|
inline |
Definition at line 91 of file log_manager_pimpl.hpp.
References control_block_, and foedus::log::LogManagerControlBlock::durable_global_epoch_.
Referenced by foedus::log::LogManager::get_durable_global_epoch(), initialize_once(), refresh_global_durable_epoch(), and wait_until_durable().
|
inline |
Definition at line 94 of file log_manager_pimpl.hpp.
References control_block_, and foedus::log::LogManagerControlBlock::durable_global_epoch_.
Referenced by foedus::log::LogManager::get_durable_global_epoch_weak().
|
overridevirtual |
Implements foedus::DefaultInitializable.
Definition at line 49 of file log_manager_pimpl.cpp.
References ASSERT_ND, foedus::Attachable< CONTROL_BLOCK >::attach(), CHECK_ERROR, CHECK_OUTOFMEMORY, COERCE_ERROR, foedus::thread::compose_thread_id(), control_block_, foedus::log::LogOptions::convert_folder_path_pattern(), foedus::fs::create_directories(), foedus::log::LogManagerControlBlock::durable_global_epoch_, engine_, ERROR_STACK, foedus::fs::exists(), get_durable_global_epoch(), foedus::soc::SharedMemoryRepo::get_global_memory_anchors(), foedus::savepoint::SavepointManager::get_initial_durable_epoch(), foedus::soc::SharedMemoryRepo::get_node_memory_anchors(), foedus::Engine::get_options(), foedus::Engine::get_savepoint_manager(), foedus::soc::SocManager::get_shared_memory_repo(), foedus::Engine::get_soc_id(), foedus::Engine::get_soc_manager(), foedus::Engine::get_thread_pool(), foedus::thread::ThreadOptions::get_total_thread_count(), foedus::thread::ThreadOptions::group_count_, groups_, foedus::log::LogManagerControlBlock::initialize(), foedus::DefaultInitializable::initialize(), foedus::savepoint::SavepointManager::is_initialized(), foedus::thread::ThreadPool::is_initialized(), foedus::Engine::is_master(), foedus::kErrorCodeDepedentModuleUnavailableInit, foedus::kErrorCodeLogInvalidLoggerCount, foedus::kRetOk, foedus::EngineOptions::log_, foedus::soc::GlobalMemoryAnchors::log_manager_memory_, foedus::soc::NodeMemoryAnchors::logger_memories_, logger_refs_, loggers_, foedus::log::LogOptions::loggers_per_node_, loggers_per_node_, meta_buffer_, meta_logger_, foedus::soc::GlobalMemoryAnchors::meta_logger_memory_, foedus::Attachable< CONTROL_BLOCK >::set_engine(), foedus::EngineOptions::thread_, foedus::thread::ThreadOptions::thread_count_per_group_, and foedus::Epoch::value().
ErrorStack foedus::log::LogManagerPimpl::refresh_global_durable_epoch | ( | ) |
Definition at line 179 of file log_manager_pimpl.cpp.
References ASSERT_ND, CHECK_ERROR, control_block_, foedus::log::LogManagerControlBlock::durable_global_epoch_, foedus::log::LogManagerControlBlock::durable_global_epoch_advanced_, foedus::log::LogManagerControlBlock::durable_global_epoch_savepoint_mutex_, engine_, get_durable_global_epoch(), foedus::Engine::get_savepoint_manager(), foedus::Epoch::is_valid(), foedus::kRetOk, logger_refs_, foedus::assorted::memory_fence_acquire(), foedus::assorted::memory_fence_release(), foedus::soc::SharedPolling::signal(), foedus::Epoch::store_min(), foedus::savepoint::SavepointManager::take_savepoint(), and foedus::Epoch::value().
Referenced by foedus::log::LogManager::refresh_global_durable_epoch().
|
overridevirtual |
Implements foedus::DefaultInitializable.
Definition at line 149 of file log_manager_pimpl.cpp.
References ASSERT_ND, control_block_, foedus::ErrorStackBatch::emprace_back(), engine_, ERROR_STACK, foedus::Engine::get_savepoint_manager(), foedus::Engine::get_thread_pool(), foedus::savepoint::SavepointManager::is_initialized(), foedus::thread::ThreadPool::is_initialized(), foedus::Engine::is_master(), foedus::kErrorCodeDepedentModuleUnavailableUninit, logger_refs_, loggers_, meta_logger_, SUMMARIZE_ERROR_BATCH, foedus::log::LogManagerControlBlock::uninitialize(), foedus::DefaultInitializable::uninitialize(), and foedus::ErrorStackBatch::uninitialize_and_delete_all().
ErrorCode foedus::log::LogManagerPimpl::wait_until_durable | ( | Epoch | commit_epoch, |
int64_t | wait_microseconds | ||
) |
Definition at line 214 of file log_manager_pimpl.cpp.
References foedus::soc::SharedPolling::acquire_ticket(), control_block_, foedus::log::LogManagerControlBlock::durable_global_epoch_advanced_, get_durable_global_epoch(), foedus::kErrorCodeOk, foedus::kErrorCodeTimeout, logger_refs_, foedus::assorted::memory_fence_acquire(), SPINLOCK_WHILE, foedus::soc::SharedPolling::timedwait(), and foedus::soc::SharedPolling::wait().
Referenced by foedus::log::LogManager::wait_until_durable().
void foedus::log::LogManagerPimpl::wakeup_loggers | ( | ) |
Definition at line 173 of file log_manager_pimpl.cpp.
References logger_refs_.
Referenced by foedus::log::LogManager::wakeup_loggers().
LogManagerControlBlock* foedus::log::LogManagerPimpl::control_block_ |
Definition at line 119 of file log_manager_pimpl.hpp.
Referenced by announce_new_durable_global_epoch(), get_durable_global_epoch(), get_durable_global_epoch_weak(), initialize_once(), refresh_global_durable_epoch(), uninitialize_once(), and wait_until_durable().
Engine* const foedus::log::LogManagerPimpl::engine_ |
Definition at line 100 of file log_manager_pimpl.hpp.
Referenced by initialize_once(), refresh_global_durable_epoch(), and uninitialize_once().
thread::ThreadGroupId foedus::log::LogManagerPimpl::groups_ |
Definition at line 102 of file log_manager_pimpl.hpp.
Referenced by initialize_once().
std::vector< LoggerRef > foedus::log::LogManagerPimpl::logger_refs_ |
All log writers.
Index is global logger ordinal.
Definition at line 112 of file log_manager_pimpl.hpp.
Referenced by copy_logger_states(), foedus::log::LogManager::get_logger(), initialize_once(), refresh_global_durable_epoch(), uninitialize_once(), wait_until_durable(), and wakeup_loggers().
std::vector< Logger* > foedus::log::LogManagerPimpl::loggers_ |
Local log writers.
Index is local logger ordinal. Empty in master engine.
Definition at line 109 of file log_manager_pimpl.hpp.
Referenced by initialize_once(), and uninitialize_once().
uint16_t foedus::log::LogManagerPimpl::loggers_per_node_ |
Definition at line 103 of file log_manager_pimpl.hpp.
Referenced by initialize_once().
MetaLogBuffer foedus::log::LogManagerPimpl::meta_buffer_ |
Metadata log buffer.
Exists in all engines
Definition at line 117 of file log_manager_pimpl.hpp.
Referenced by foedus::log::LogManager::get_meta_buffer(), and initialize_once().
MetaLogger* foedus::log::LogManagerPimpl::meta_logger_ |
Metadata log writer.
Instantiated only in master
Definition at line 115 of file log_manager_pimpl.hpp.
Referenced by foedus::log::LogManager::get_meta_logger(), initialize_once(), and uninitialize_once().