summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMathias Stearn <mathias@10gen.com>2017-09-27 15:35:50 -0400
committerMathias Stearn <mathias@10gen.com>2017-09-29 18:20:43 -0400
commit973a234e9adc9c093e3820b5e254142602faf53f (patch)
tree0554ff485c924b216ada36305d46130d448ccd7e /src
parent6f1e6167058a909a22988a4d0bc7812fd4bd1abe (diff)
downloadmongo-973a234e9adc9c093e3820b5e254142602faf53f.tar.gz
SERVER-31291 Use fast clock source to rate-limit retrying WT drops
Diffstat (limited to 'src')
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp5
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.h1
2 files changed, 4 insertions, 2 deletions
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp
index dc0fa530444..35c11b6f470 100644
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp
@@ -321,6 +321,7 @@ WiredTigerKVEngine::WiredTigerKVEngine(const std::string& canonicalName,
bool repair,
bool readOnly)
: _eventHandler(WiredTigerUtil::defaultEventHandlers()),
+ _clockSource(cs),
_canonicalName(canonicalName),
_path(path),
_sizeStorerSyncTracker(cs, 100000, Seconds(60)),
@@ -340,7 +341,7 @@ WiredTigerKVEngine::WiredTigerKVEngine(const std::string& canonicalName,
}
}
- _previousCheckedDropsQueued = Date_t::now();
+ _previousCheckedDropsQueued = _clockSource->now();
std::stringstream ss;
ss << "create,";
@@ -834,7 +835,7 @@ std::list<WiredTigerCachedCursor> WiredTigerKVEngine::filterCursorsWithQueuedDro
}
bool WiredTigerKVEngine::haveDropsQueued() const {
- Date_t now = Date_t::now();
+ Date_t now = _clockSource->now();
Milliseconds delta = now - _previousCheckedDropsQueued;
if (!_readOnly && _sizeStorerSyncTracker.intervalHasElapsed()) {
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.h b/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.h
index e08fa53f2c6..55cb196a047 100644
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.h
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.h
@@ -242,6 +242,7 @@ private:
WT_CONNECTION* _conn;
WT_EVENT_HANDLER _eventHandler;
std::unique_ptr<WiredTigerSessionCache> _sessionCache;
+ ClockSource* const _clockSource;
// Mutex to protect use of _oplogManager and _oplogManagerCount by this instance of KV
// engine.