libfoedus-core
FOEDUS Core Library
|
Shared data in XctManagerPimpl. More...
Shared data in XctManagerPimpl.
Definition at line 39 of file xct_manager_pimpl.hpp.
#include <xct_manager_pimpl.hpp>
Public Member Functions | |
XctManagerControlBlock ()=delete | |
~XctManagerControlBlock ()=delete | |
void | initialize () |
void | uninitialize () |
Public Attributes | |
std::atomic< Epoch::EpochInteger > | current_global_epoch_ |
The current epoch of the entire engine. More... | |
std::atomic< Epoch::EpochInteger > | requested_global_epoch_ |
If some thread requested to immediately advance epoch, the requested epoch. More... | |
soc::SharedPolling | current_global_epoch_advanced_ |
Fired (broadcast) whenever current_global_epoch_ is advanced. More... | |
soc::SharedPolling | epoch_chime_wakeup_ |
Fired to wakeup epoch_chime_thread_. More... | |
std::atomic< bool > | epoch_chime_terminate_requested_ |
Protected by the mutex in epoch_chime_wakeup_. More... | |
std::atomic< bool > | new_transaction_paused_ |
If true, all new requests to begin_xct() will be paused until this becomes false. More... | |
|
delete |
|
delete |
|
inline |
Definition at line 44 of file xct_manager_pimpl.hpp.
References current_global_epoch_advanced_, epoch_chime_wakeup_, foedus::soc::SharedPolling::initialize(), and new_transaction_paused_.
Referenced by foedus::xct::XctManagerPimpl::initialize_once().
|
inline |
Definition at line 49 of file xct_manager_pimpl.hpp.
Referenced by foedus::xct::XctManagerPimpl::uninitialize_once().
std::atomic<Epoch::EpochInteger> foedus::xct::XctManagerControlBlock::current_global_epoch_ |
The current epoch of the entire engine.
Currently running (committing) transactions will use this value as their serialization point. No locks to protect this variable, but
Definition at line 62 of file xct_manager_pimpl.hpp.
Referenced by foedus::xct::XctManagerPimpl::get_current_global_epoch(), foedus::xct::XctManagerPimpl::get_current_global_epoch_weak(), foedus::xct::XctManagerPimpl::handle_epoch_chime(), and foedus::xct::XctManagerPimpl::initialize_once().
soc::SharedPolling foedus::xct::XctManagerControlBlock::current_global_epoch_advanced_ |
Fired (broadcast) whenever current_global_epoch_ is advanced.
Definition at line 72 of file xct_manager_pimpl.hpp.
Referenced by foedus::xct::XctManagerPimpl::advance_current_global_epoch(), foedus::xct::XctManagerPimpl::handle_epoch_chime(), initialize(), and foedus::xct::XctManagerPimpl::wait_for_current_global_epoch().
std::atomic<bool> foedus::xct::XctManagerControlBlock::epoch_chime_terminate_requested_ |
Protected by the mutex in epoch_chime_wakeup_.
Definition at line 77 of file xct_manager_pimpl.hpp.
Referenced by foedus::xct::XctManagerPimpl::initialize_once(), foedus::xct::XctManagerPimpl::is_stop_requested(), and foedus::xct::XctManagerPimpl::uninitialize_once().
soc::SharedPolling foedus::xct::XctManagerControlBlock::epoch_chime_wakeup_ |
Fired to wakeup epoch_chime_thread_.
Definition at line 75 of file xct_manager_pimpl.hpp.
Referenced by foedus::xct::XctManagerPimpl::handle_epoch_chime(), initialize(), foedus::xct::XctManagerPimpl::uninitialize_once(), and foedus::xct::XctManagerPimpl::wakeup_epoch_chime_thread().
std::atomic<bool> foedus::xct::XctManagerControlBlock::new_transaction_paused_ |
If true, all new requests to begin_xct() will be paused until this becomes false.
This is the mechanism for very rare events that need to separate out all concurrent transaction executions, such as drop-volatile-page step after snapshotting. This does not affect an already running transaction, so the snapshot thread must wait for long enough after setting this value. Also, the worker threads simply check-with-sleep to wait until this becomes false, not SharedCond. This is used only once per several minutes, so no need for optimization. Keep it simple!
Definition at line 90 of file xct_manager_pimpl.hpp.
Referenced by foedus::xct::XctManagerPimpl::begin_xct(), initialize(), foedus::xct::XctManagerPimpl::pause_accepting_xct(), foedus::xct::XctManagerPimpl::resume_accepting_xct(), and foedus::xct::XctManagerPimpl::wait_until_resume_accepting_xct().
std::atomic<Epoch::EpochInteger> foedus::xct::XctManagerControlBlock::requested_global_epoch_ |
If some thread requested to immediately advance epoch, the requested epoch.
If this is less than or equal to current_global_epoch_, there is no immediate advance request.
Definition at line 69 of file xct_manager_pimpl.hpp.
Referenced by foedus::xct::XctManagerPimpl::get_requested_global_epoch(), foedus::xct::XctManagerPimpl::initialize_once(), and foedus::xct::XctManagerPimpl::set_requested_global_epoch().