libfoedus-core
FOEDUS Core Library
|
Control block for MetaLogBuffer and MetaLogger. More...
Control block for MetaLogBuffer and MetaLogger.
Definition at line 38 of file meta_log_buffer.hpp.
#include <meta_log_buffer.hpp>
Public Member Functions | |
void | initialize () |
void | uninitialize () |
bool | has_waiting_log () const |
Public Attributes | |
char | buffer_ [1<< 12] |
The content of current log buffer. More... | |
uint32_t | buffer_used_ |
uint64_t | oldest_offset_ |
Offset from which log entries are not gleaned yet. More... | |
uint64_t | durable_offset_ |
Offset upto which log entries are fsynced. More... | |
soc::SharedMutex | mutex_ |
Accesses in MetaLogBuffer are protected with this mutex. More... | |
soc::SharedPolling | logger_wakeup_ |
the logger sleeps on this variable More... | |
|
inline |
Definition at line 50 of file meta_log_buffer.hpp.
References buffer_used_.
|
inline |
Definition at line 39 of file meta_log_buffer.hpp.
References buffer_used_, durable_offset_, foedus::soc::SharedMutex::initialize(), foedus::soc::SharedPolling::initialize(), logger_wakeup_, mutex_, and oldest_offset_.
Referenced by foedus::log::MetaLogger::initialize_once().
|
inline |
Definition at line 46 of file meta_log_buffer.hpp.
References mutex_, and foedus::soc::SharedMutex::uninitialize().
Referenced by foedus::log::MetaLogger::uninitialize_once().
char foedus::log::MetaLogControlBlock::buffer_[1<< 12] |
The content of current log buffer.
This must be the first entry to be aligned for direct-IO. We put only one metadata log each time, and metadata log never gets bigger than 4kb, so this is enough.
Definition at line 57 of file meta_log_buffer.hpp.
uint32_t foedus::log::MetaLogControlBlock::buffer_used_ |
Definition at line 58 of file meta_log_buffer.hpp.
Referenced by has_waiting_log(), initialize(), and foedus::log::operator<<().
uint64_t foedus::log::MetaLogControlBlock::durable_offset_ |
Offset upto which log entries are fsynced.
Definition at line 62 of file meta_log_buffer.hpp.
Referenced by initialize(), foedus::log::operator<<(), and foedus::savepoint::SavepointManagerPimpl::savepoint_main().
soc::SharedPolling foedus::log::MetaLogControlBlock::logger_wakeup_ |
the logger sleeps on this variable
Definition at line 70 of file meta_log_buffer.hpp.
Referenced by initialize(), and foedus::log::MetaLogger::uninitialize_once().
soc::SharedMutex foedus::log::MetaLogControlBlock::mutex_ |
Accesses in MetaLogBuffer are protected with this mutex.
Logger doesn't lock it. Logger just checks buffer_/buffer_used_. Make sure you write buffer_ first, then buffer_used_ after fence.
Definition at line 68 of file meta_log_buffer.hpp.
Referenced by initialize(), and uninitialize().
uint64_t foedus::log::MetaLogControlBlock::oldest_offset_ |
Offset from which log entries are not gleaned yet.
Definition at line 60 of file meta_log_buffer.hpp.
Referenced by initialize(), foedus::log::operator<<(), and foedus::savepoint::SavepointManagerPimpl::savepoint_main().