diff options
author | Mathias Stearn <mathias@10gen.com> | 2016-11-04 18:29:44 -0400 |
---|---|---|
committer | Mathias Stearn <mathias@10gen.com> | 2016-11-07 10:19:57 -0500 |
commit | 4720f9651f5e77af6adc9421a2bbf8c610280de7 (patch) | |
tree | 9c9d8a62b4f1fe2f1a0381653ecd527925240ecb | |
parent | b20282c5fec7cdedc9ba0d1aaf8439bfcd226753 (diff) | |
download | mongo-4720f9651f5e77af6adc9421a2bbf8c610280de7.tar.gz |
SERVER-26685 move ephemeral bypass for waitUntilDurable into SessionCache
-rw-r--r-- | src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp | 5 | ||||
-rw-r--r-- | src/mongo/db/storage/wiredtiger/wiredtiger_session_cache.cpp | 6 |
2 files changed, 6 insertions, 5 deletions
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp index 4dccf34cd0e..66fd5e0ddfa 100644 --- a/src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp +++ b/src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp @@ -149,11 +149,6 @@ void WiredTigerRecoveryUnit::_ensureSession() { bool WiredTigerRecoveryUnit::waitUntilDurable() { invariant(!_inUnitOfWork); - // For inMemory storage engines, the data is "as durable as it's going to get". - // That is, a restart is equivalent to a complete node failure. - if (_sessionCache->isEphemeral()) { - return true; - } // _session may be nullptr. We cannot _ensureSession() here as that needs shutdown protection. _sessionCache->waitUntilDurable(false); return true; diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_session_cache.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_session_cache.cpp index 9fc12fb8412..97244d4fd18 100644 --- a/src/mongo/db/storage/wiredtiger/wiredtiger_session_cache.cpp +++ b/src/mongo/db/storage/wiredtiger/wiredtiger_session_cache.cpp @@ -176,6 +176,12 @@ void WiredTigerSessionCache::shuttingDown() { } void WiredTigerSessionCache::waitUntilDurable(bool forceCheckpoint) { + // For inMemory storage engines, the data is "as durable as it's going to get". + // That is, a restart is equivalent to a complete node failure. + if (isEphemeral()) { + return; + } + const int shuttingDown = _shuttingDown.fetchAndAdd(1); ON_BLOCK_EXIT([this] { _shuttingDown.fetchAndSubtract(1); }); |