31 #include "mongo/base/disallow_copying.h" 36 #include "mongo/stdx/thread.h" 37 #include "mongo/util/queue.h" 58 Buffer(
size_t initialSize);
MONGO_DISALLOW_COPYING(JournalWriter)
CommitNotifier *const _commitNotify
Definition: dur_journal_writer.h:180
void shutdown()
Terminates the journal writer thread and frees memory for the buffers.
Definition: dur_journal_writer.cpp:147
Stores the memory and the header for a complete journal buffer which is pending to be written by the ...
Definition: dur_journal_writer.h:56
JSectHeader _header
Definition: dur_journal_writer.h:98
Establishes a synchronization point between threads.
Definition: commit_notifier.h:40
void _reset()
Definition: dur_journal_writer.cpp:300
Manages the thread and queues used for writing the journal to disk and notify parties with are waitin...
Definition: dur_journal_writer.h:48
Copyright (C) 2014 MongoDB Inc.
Definition: bson_collection_catalog_entry.cpp:38
bool _shutdownRequested
Definition: dur_journal_writer.h:189
~Buffer()
Definition: dur_journal_writer.cpp:291
Used inside the journal writer thread to ensure that used buffers are cleaned up properly.
Definition: dur_journal_writer.cpp:83
friend class JournalWriter
Definition: dur_journal_writer.h:76
void setNoop()
Definition: dur_journal_writer.h:68
void writeBuffer(Buffer *buffer, CommitNotifier::When commitNumber)
Requests that the specified buffer be written asynchronously.
Definition: dur_journal_writer.cpp:186
BlockingQueue< Buffer * > BufferQueue
Definition: dur_journal_writer.h:169
JournalListener::Token journalListenerToken
Definition: dur_journal_writer.h:72
a page-aligned BufBuilder.
Definition: aligned_builder.h:37
BufferQueue _readyQueue
Definition: dur_journal_writer.h:196
void _journalWriterThread()
Definition: dur_journal_writer.cpp:210
Buffer(size_t initialSize)
Definition: dur_journal_writer.cpp:288
CommitNotifier *const _applyToDataFilesNotify
Definition: dur_journal_writer.h:183
bool _isNoop
Definition: dur_journal_writer.h:92
CommitNotifier::When _lastCommitNumber
Definition: dur_journal_writer.h:193
void assertIdle()
Asserts that there are no pending journal writes.
Definition: dur_journal_writer.cpp:173
~JournalWriter()
Definition: dur_journal_writer.cpp:127
void _assertEmpty()
Definition: dur_journal_writer.cpp:295
bool _isShutdown
Definition: dur_journal_writer.h:96
void flush()
Ensures that all previously submitted write requests complete.
Definition: dur_journal_writer.cpp:195
BufferQueue _journalQueue
Definition: dur_journal_writer.h:192
Buffer * newBuffer()
Obtains a new empty buffer into which a journal entry should be written.
Definition: dur_journal_writer.cpp:179
AlignedBuilder _builder
Definition: dur_journal_writer.h:99
void start()
Allocates buffer memory and starts the journal writer thread.
Definition: dur_journal_writer.cpp:133
unsigned long long When
Definition: commit_notifier.h:44
repl::OpTime Token
Definition: journal_listener.h:50
AlignedBuilder & getBuilder()
Definition: dur_journal_writer.h:64
void _setShutdown()
Definition: dur_journal_writer.h:81
stdx::thread _journalWriterThreadHandle
Definition: dur_journal_writer.h:186
Definition: dur_journal_writer.h:172
CommitNotifier::When _commitNumber
Definition: dur_journal_writer.h:87
JSectHeader & getHeader()
Definition: dur_journal_writer.h:61