#include <dur_commitjob.h>
Public Member Functions | |
| void | awaitNextCommit () |
| size_t | bytes () const |
| CommitJob () | |
| bool | hasWritten () const |
| void | note (void *p, int len) |
| void | noteOp (shared_ptr< DurOp > p) |
| void | notifyCommitted () |
| vector< shared_ptr< DurOp > > & | ops () |
| void | reset () |
| Writes & | wi () |
| set< WriteIntent > & | writes () |
Public Attributes | |
| AlignedBuilder | _ab |
| unsigned | _nSinceCommitIfNeededCall |
Private Attributes | |
| size_t | _bytes |
| bool | _hasWritten |
| NotifyAll | _notify |
| Writes | _wi |
A commit job object for a group commit. Currently there is one instance of this object.
concurrency: assumption is caller is appropriately locking. for example note() invocations are from the write lock. other uses are in a read lock from a single thread (durThread)
Definition at line 157 of file dur_commitjob.h.
| mongo::dur::CommitJob::CommitJob | ( | ) |
| void mongo::dur::CommitJob::awaitNextCommit | ( | ) | [inline] |
Wait until the next group commit occurs. That is, wait until someone calls notifyCommitted.
Definition at line 192 of file dur_commitjob.h.
| size_t mongo::dur::CommitJob::bytes | ( | ) | const [inline] |
we check how much written and if it is getting to be a lot, we commit sooner.
Definition at line 198 of file dur_commitjob.h.
| bool mongo::dur::CommitJob::hasWritten | ( | ) | const [inline] |
this method is safe to call outside of locks. when haswritten is false we don't do any group commit and avoid even trying to acquire a lock, which might be helpful at times.
Definition at line 183 of file dur_commitjob.h.
| void mongo::dur::CommitJob::note | ( | void * | p, | |
| int | len | |||
| ) |
record/note an intent to write
| void mongo::dur::CommitJob::noteOp | ( | shared_ptr< DurOp > | p | ) |
note an operation other than a "basic write"
| void mongo::dur::CommitJob::notifyCommitted | ( | ) | [inline] |
the commit code calls this when data reaches the journal (on disk)
Definition at line 189 of file dur_commitjob.h.
| vector< shared_ptr<DurOp> >& mongo::dur::CommitJob::ops | ( | ) | [inline] |
Definition at line 178 of file dur_commitjob.h.
| void mongo::dur::CommitJob::reset | ( | ) |
we use the commitjob object over and over, calling reset() rather than reconstructing
| Writes& mongo::dur::CommitJob::wi | ( | ) | [inline] |
Definition at line 204 of file dur_commitjob.h.
| set<WriteIntent>& mongo::dur::CommitJob::writes | ( | ) | [inline] |
Definition at line 169 of file dur_commitjob.h.
Definition at line 159 of file dur_commitjob.h.
size_t mongo::dur::CommitJob::_bytes [private] |
Definition at line 208 of file dur_commitjob.h.
bool mongo::dur::CommitJob::_hasWritten [private] |
Definition at line 206 of file dur_commitjob.h.
NotifyAll mongo::dur::CommitJob::_notify [private] |
Definition at line 209 of file dur_commitjob.h.
Definition at line 211 of file dur_commitjob.h.
Writes mongo::dur::CommitJob::_wi [private] |
Definition at line 207 of file dur_commitjob.h.