Just pass through to getDur().
|
| DurRecoveryUnit () |
|
void | beginUnitOfWork (OperationContext *opCtx) final |
| Marks the beginning of a unit of work. More...
|
|
void | commitUnitOfWork () final |
| Marks the end of a unit of work and commits all changes registered by calls to onCommit or registerChange, in order. More...
|
|
void | abortUnitOfWork () final |
| Marks the end of a unit of work and rolls back all changes registered by calls to onRollback or registerChange, in reverse order. More...
|
|
virtual bool | waitUntilDurable () |
| Waits until all commits that happened before this call are durable in the journal. More...
|
|
virtual void | abandonSnapshot () |
| If there is an open transaction, it is closed. More...
|
|
virtual void | registerChange (Change *change) |
| The RecoveryUnit takes ownership of the change. More...
|
|
virtual void * | writingPtr (void *addr, size_t len) |
| Declare that the data at [x, x + len) is being written. More...
|
|
virtual void | setRollbackWritesDisabled () |
| Sets a flag that declares this RecoveryUnit will skip rolling back writes, for the duration of the current outermost WriteUnitOfWork. More...
|
|
virtual SnapshotId | getSnapshotId () const |
| Gets the local SnapshotId. More...
|
|
virtual void | setOrderedCommit (bool orderedCommit) |
|
virtual | ~RecoveryUnit () |
|
virtual void | prepareUnitOfWork () |
| Transitions the active unit of work to the "prepared" state. More...
|
|
virtual void | setIgnorePrepared (bool ignore) |
| Sets whether or not to ignore prepared transactions if supported by this storage engine. More...
|
|
virtual bool | waitUntilUnjournaledWritesDurable () |
| Unlike waitUntilDurable , this method takes a stable checkpoint, making durable any writes on unjournaled tables that are behind the current stable timestamp. More...
|
|
virtual void | preallocateSnapshot () |
| Informs the RecoveryUnit that a snapshot will be needed soon, if one was not already established. More...
|
|
virtual Status | obtainMajorityCommittedSnapshot () |
| Obtains a majority committed snapshot. More...
|
|
virtual boost::optional< Timestamp > | getPointInTimeReadTimestamp () const |
| Returns the Timestamp being used by this recovery unit or boost::none if not reading from a point in time. More...
|
|
virtual Status | setTimestamp (Timestamp timestamp) |
| Sets a timestamp to assign to future writes in a transaction. More...
|
|
virtual void | setCommitTimestamp (Timestamp timestamp) |
| Sets a timestamp that will be assigned to all future writes on this RecoveryUnit until clearCommitTimestamp() is called. More...
|
|
virtual void | clearCommitTimestamp () |
|
virtual Timestamp | getCommitTimestamp () |
|
virtual void | setPrepareTimestamp (Timestamp timestamp) |
| Sets a prepare timestamp for the current transaction. More...
|
|
virtual void | setTimestampReadSource (ReadSource source, boost::optional< Timestamp > provided=boost::none) |
| Sets which timestamp to use for read transactions. More...
|
|
virtual ReadSource | getTimestampReadSource () const |
|
template<typename Callback > |
void | onRollback (Callback callback) |
| Registers a callback to be called if the current WriteUnitOfWork rolls back. More...
|
|
template<typename Callback > |
void | onCommit (Callback callback) |
| Registers a callback to be called if the current WriteUnitOfWork commits. More...
|
|
int & | writingInt (int &d) |
| Declare write intent for an int. More...
|
|
template<typename T > |
T * | writing (T *x) |
| A templated helper for writingPtr. More...
|
|
|
void | commitChanges () |
| Marks writes for journaling, if enabled, and then commits all other Changes in order. More...
|
|
void | markWritesForJournaling () |
| Creates a list of write intents to be journaled, and hands it of to the active DurabilityInterface. More...
|
|
void | rollbackChanges () |
| Restores state by rolling back all writes using the saved pre-images, and then rolling back all other Changes in LIFO order. More...
|
|
void | mergingWritingPtr (char *data, size_t len) |
| Version of writingPtr that checks existing writes for overlap and only stores those changes not yet covered by an existing write intent and pre-image. More...
|
|
void | resetChanges () |
| Reset to a clean state without any uncommitted changes or write. More...
|
|
Writes are ordered by ending address, so MergedWrites::upper_bound() can find the first overlapping write, if any.
Overlapping and duplicate regions are forbidden, as rollback of MergedChanges undoes changes by address rather than LIFO order. In addition, empty regions are not allowed. Storing writes by age does not work well for large indexed arrays, as coalescing is needed to bound the size of the preimage buffer.
void mongo::DurRecoveryUnit::commitChanges |
( |
| ) |
|
|
private |
Marks writes for journaling, if enabled, and then commits all other Changes in order.
Returns with empty _initialWrites, _mergedWrites, _changes and _preimageBuffer, but does not reset the _rollbackWritesDisabled or _mustRollback flags. This leaves the RecoveryUnit ready for more changes that may be committed or rolled back.
void mongo::DurRecoveryUnit::setRollbackWritesDisabled |
( |
| ) |
|
|
virtual |
Sets a flag that declares this RecoveryUnit will skip rolling back writes, for the duration of the current outermost WriteUnitOfWork.
This function can only be called between a pair of unnested beginUnitOfWork() / endUnitOfWork() calls. The flag is cleared when endUnitOfWork() is called. While the flag is set, rollback will skip rolling back writes, but custom rollback change functions are still called. Clearly, this functionality should only be used when writing to temporary collections that can be cleaned up externally. For example, foreground index builds write to a temporary collection; if something goes wrong that normally requires a rollback, we can instead clean up the index by dropping the entire index. Setting the flag may permit increased performance.
Implements mongo::RecoveryUnit.
bool mongo::DurRecoveryUnit::waitUntilDurable |
( |
| ) |
|
|
virtual |
Waits until all commits that happened before this call are durable in the journal.
Returns true, unless the storage engine cannot guarantee durability, which should never happen when isDurable() returned true. This cannot be called from inside a unit of work, and should fail if it is.
- Returns
- Whether or not the storage engine can guarantee durability.
Implements mongo::RecoveryUnit.