diff options
author | Daniel Gottlieb <daniel.gottlieb@10gen.com> | 2016-08-04 15:55:37 -0400 |
---|---|---|
committer | Daniel Gottlieb <daniel.gottlieb@10gen.com> | 2016-08-04 16:13:52 -0400 |
commit | b8c9312f13de0d05232bfb68966f5da4ce27328d (patch) | |
tree | e106d5be5b53ecb257ee26d2d6c61e42f358830b /src/mongo/db/storage | |
parent | 089b61b649d0e244b590b5fffc0ce81116852bf2 (diff) | |
download | mongo-b8c9312f13de0d05232bfb68966f5da4ce27328d.tar.gz |
SERVER-25232: Avoid table scans on startup with queryableBackupMode WT
Diffstat (limited to 'src/mongo/db/storage')
-rw-r--r-- | src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp index 8c51bf5689d..ae460ab7c36 100644 --- a/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp +++ b/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp @@ -266,16 +266,14 @@ WiredTigerKVEngine::WiredTigerKVEngine(const std::string& canonicalName, _journalFlusher->go(); } - if (!_readOnly) { - _sizeStorerUri = "table:sizeStorer"; - WiredTigerSession session(_conn); - if (repair && _hasUri(session.getSession(), _sizeStorerUri)) { - log() << "Repairing size cache"; - fassertNoTrace(28577, _salvageIfNeeded(_sizeStorerUri.c_str())); - } - _sizeStorer.reset(new WiredTigerSizeStorer(_conn, _sizeStorerUri)); - _sizeStorer->fillCache(); + _sizeStorerUri = "table:sizeStorer"; + WiredTigerSession session(_conn); + if (!_readOnly && repair && _hasUri(session.getSession(), _sizeStorerUri)) { + log() << "Repairing size cache"; + fassertNoTrace(28577, _salvageIfNeeded(_sizeStorerUri.c_str())); } + _sizeStorer.reset(new WiredTigerSizeStorer(_conn, _sizeStorerUri)); + _sizeStorer->fillCache(); Locker::setGlobalThrottling(&openReadTransaction, &openWriteTransaction); } @@ -310,7 +308,8 @@ void WiredTigerKVEngine::appendGlobalStats(BSONObjBuilder& b) { void WiredTigerKVEngine::cleanShutdown() { log() << "WiredTigerKVEngine shutting down"; - syncSizeInfo(true); + if (!_readOnly) + syncSizeInfo(true); if (_conn) { // these must be the last things we do before _conn->close(); if (_journalFlusher) @@ -576,7 +575,7 @@ bool WiredTigerKVEngine::haveDropsQueued() const { Date_t now = Date_t::now(); Milliseconds delta = now - _previousCheckedDropsQueued; - if (_sizeStorerSyncTracker.intervalHasElapsed()) { + if (!_readOnly && _sizeStorerSyncTracker.intervalHasElapsed()) { _sizeStorerSyncTracker.resetLastTime(); syncSizeInfo(false); } |