summaryrefslogtreecommitdiff
path: root/src/mongo/db/storage
diff options
context:
space:
mode:
authorDaniel Gottlieb <daniel.gottlieb@10gen.com>2016-08-04 15:55:37 -0400
committerDaniel Gottlieb <daniel.gottlieb@10gen.com>2016-08-04 16:13:52 -0400
commitb8c9312f13de0d05232bfb68966f5da4ce27328d (patch)
treee106d5be5b53ecb257ee26d2d6c61e42f358830b /src/mongo/db/storage
parent089b61b649d0e244b590b5fffc0ce81116852bf2 (diff)
downloadmongo-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.cpp21
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);
}