Storage Engine API
mongo::WiredTigerOplogManager Class Reference

#include <wiredtiger_oplog_manager.h>

Public Member Functions

 WiredTigerOplogManager ()
 
 ~WiredTigerOplogManager ()
 
void start (OperationContext *opCtx, const std::string &uri, WiredTigerRecordStore *oplogRecordStore)
 
void halt ()
 
bool isRunning ()
 
std::uint64_t getOplogReadTimestamp () const
 
void setOplogReadTimestamp (Timestamp ts)
 
void triggerJournalFlush ()
 
void waitForAllEarlierOplogWritesToBeVisible (const WiredTigerRecordStore *oplogRecordStore, OperationContext *opCtx) const
 
uint64_t fetchAllCommittedValue (WT_CONNECTION *conn)
 

Private Member Functions

 MONGO_DISALLOW_COPYING (WiredTigerOplogManager)
 
void _oplogJournalThreadLoop (WiredTigerSessionCache *sessionCache, WiredTigerRecordStore *oplogRecordStore) noexcept
 
void _setOplogReadTimestamp (WithLock, uint64_t newTimestamp)
 

Private Attributes

stdx::thread _oplogJournalThread
 
stdx::mutex _oplogVisibilityStateMutex
 
stdx::condition_variable _opsWaitingForJournalCV
 
stdx::condition_variable _opsBecameVisibleCV
 
bool _isRunning = false
 
bool _shuttingDown = false
 
RecordId _oplogMaxAtStartup = RecordId(0)
 
bool _opsWaitingForJournal = false
 
AtomicUInt64 _oplogReadTimestamp
 

Constructor & Destructor Documentation

◆ WiredTigerOplogManager()

mongo::WiredTigerOplogManager::WiredTigerOplogManager ( )
inline

◆ ~WiredTigerOplogManager()

mongo::WiredTigerOplogManager::~WiredTigerOplogManager ( )
inline

Member Function Documentation

◆ _oplogJournalThreadLoop()

void mongo::WiredTigerOplogManager::_oplogJournalThreadLoop ( WiredTigerSessionCache sessionCache,
WiredTigerRecordStore oplogRecordStore 
)
privatenoexcept

◆ _setOplogReadTimestamp()

void mongo::WiredTigerOplogManager::_setOplogReadTimestamp ( WithLock  ,
uint64_t  newTimestamp 
)
private

◆ fetchAllCommittedValue()

uint64_t mongo::WiredTigerOplogManager::fetchAllCommittedValue ( WT_CONNECTION *  conn)

◆ getOplogReadTimestamp()

std::uint64_t mongo::WiredTigerOplogManager::getOplogReadTimestamp ( ) const

◆ halt()

void mongo::WiredTigerOplogManager::halt ( )

◆ isRunning()

bool mongo::WiredTigerOplogManager::isRunning ( )
inline

◆ MONGO_DISALLOW_COPYING()

mongo::WiredTigerOplogManager::MONGO_DISALLOW_COPYING ( WiredTigerOplogManager  )
private

◆ setOplogReadTimestamp()

void mongo::WiredTigerOplogManager::setOplogReadTimestamp ( Timestamp  ts)

◆ start()

void mongo::WiredTigerOplogManager::start ( OperationContext *  opCtx,
const std::string &  uri,
WiredTigerRecordStore oplogRecordStore 
)

◆ triggerJournalFlush()

void mongo::WiredTigerOplogManager::triggerJournalFlush ( )

◆ waitForAllEarlierOplogWritesToBeVisible()

void mongo::WiredTigerOplogManager::waitForAllEarlierOplogWritesToBeVisible ( const WiredTigerRecordStore oplogRecordStore,
OperationContext *  opCtx 
) const

Member Data Documentation

◆ _isRunning

bool mongo::WiredTigerOplogManager::_isRunning = false
private

◆ _oplogJournalThread

stdx::thread mongo::WiredTigerOplogManager::_oplogJournalThread
private

◆ _oplogMaxAtStartup

RecordId mongo::WiredTigerOplogManager::_oplogMaxAtStartup = RecordId(0)
private

◆ _oplogReadTimestamp

AtomicUInt64 mongo::WiredTigerOplogManager::_oplogReadTimestamp
private

◆ _oplogVisibilityStateMutex

stdx::mutex mongo::WiredTigerOplogManager::_oplogVisibilityStateMutex
mutableprivate

◆ _opsBecameVisibleCV

stdx::condition_variable mongo::WiredTigerOplogManager::_opsBecameVisibleCV
mutableprivate

◆ _opsWaitingForJournal

bool mongo::WiredTigerOplogManager::_opsWaitingForJournal = false
private

◆ _opsWaitingForJournalCV

stdx::condition_variable mongo::WiredTigerOplogManager::_opsWaitingForJournalCV
mutableprivate

◆ _shuttingDown

bool mongo::WiredTigerOplogManager::_shuttingDown = false
private

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