diff options
author | Vesselina Ratcheva <vesselina.ratcheva@10gen.com> | 2021-10-04 22:27:25 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-10-04 23:57:08 +0000 |
commit | 4a230c070cb187604d07d04598a912b4feca937d (patch) | |
tree | 906ef27e1f00a5eedd7d85d814d31d8bc069a1de /src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp | |
parent | dacbdf22acd913991b7dbb89efc0943be15e9e66 (diff) | |
download | mongo-4a230c070cb187604d07d04598a912b4feca937d.tar.gz |
SERVER-58636 Allow initial syncing nodes to see entries from uncommitted batches on secondaries
Diffstat (limited to 'src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp')
-rw-r--r-- | src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp index 3e05d6b0f55..f95dc90b7bf 100644 --- a/src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp +++ b/src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp @@ -955,6 +955,8 @@ void WiredTigerRecoveryUnit::setRoundUpPreparedTimestamps(bool value) { void WiredTigerRecoveryUnit::setTimestampReadSource(ReadSource readSource, boost::optional<Timestamp> provided) { + tassert(5863604, "Cannot change ReadSource as it is pinned.", !isReadSourcePinned()); + LOGV2_DEBUG(22416, 3, "setting timestamp read source", @@ -976,6 +978,20 @@ RecoveryUnit::ReadSource WiredTigerRecoveryUnit::getTimestampReadSource() const return _timestampReadSource; } +void WiredTigerRecoveryUnit::pinReadSource() { + LOGV2_DEBUG(5863602, 3, "Pinning read source on WT recovery unit"); + _readSourcePinned = true; +} + +void WiredTigerRecoveryUnit::unpinReadSource() { + LOGV2_DEBUG(5863603, 3, "Unpinning WT recovery unit read source"); + _readSourcePinned = false; +} + +bool WiredTigerRecoveryUnit::isReadSourcePinned() const { + return _readSourcePinned; +} + void WiredTigerRecoveryUnit::beginIdle() { // Close all cursors, we don't want to keep any old cached cursors around. if (_session) { |