diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mongo/db/logical_clock.cpp | 6 | ||||
-rw-r--r-- | src/mongo/db/logical_clock.h | 9 | ||||
-rw-r--r-- | src/mongo/db/repl/replication_coordinator_impl.cpp | 2 | ||||
-rw-r--r-- | src/mongo/db/repl/replication_coordinator_impl_heartbeat.cpp | 2 |
4 files changed, 9 insertions, 10 deletions
diff --git a/src/mongo/db/logical_clock.cpp b/src/mongo/db/logical_clock.cpp index efa2d55831b..4a68e0db200 100644 --- a/src/mongo/db/logical_clock.cpp +++ b/src/mongo/db/logical_clock.cpp @@ -107,7 +107,6 @@ LogicalTime LogicalClock::getClusterTime() { Status LogicalClock::advanceClusterTime(const LogicalTime newTime) { stdx::lock_guard<stdx::mutex> lock(_mutex); - invariant(_isEnabled); auto rateLimitStatus = _passesRateLimiter_inlock(newTime); if (!rateLimitStatus.isOK()) { @@ -126,7 +125,6 @@ LogicalTime LogicalClock::reserveTicks(uint64_t nTicks) { invariant(nTicks > 0 && nTicks <= kMaxSignedInt); stdx::lock_guard<stdx::mutex> lock(_mutex); - invariant(_isEnabled); LogicalTime clusterTime = _clusterTime; @@ -209,9 +207,9 @@ bool LogicalClock::isEnabled() const { return _isEnabled; } -void LogicalClock::setEnabled(bool isEnabled) { +void LogicalClock::disable() { stdx::lock_guard<stdx::mutex> lock(_mutex); - _isEnabled = isEnabled; + _isEnabled = false; } } // namespace mongo diff --git a/src/mongo/db/logical_clock.h b/src/mongo/db/logical_clock.h index e0f5c135c1c..4145185fc6f 100644 --- a/src/mongo/db/logical_clock.h +++ b/src/mongo/db/logical_clock.h @@ -58,7 +58,7 @@ public: static LogicalTime getClusterTimeForReplicaSet(OperationContext* opCtx); /** - * Creates an instance of LogicalClock. + * Creates an instance of LogicalClock. */ LogicalClock(ServiceContext*); @@ -89,14 +89,15 @@ public: void setClusterTimeFromTrustedSource(LogicalTime newTime); /** - * Returns true if the clock is enabled and can be used. + * Returns true if the clock is enabled and can be used. Defaults to true. */ bool isEnabled() const; /** - * Passing "true" enables the clock. + * Disables the logical clock. A disabled clock won't process logical times and can't be + * re-enabled. */ - void setEnabled(bool isEnabled); + void disable(); private: /** diff --git a/src/mongo/db/repl/replication_coordinator_impl.cpp b/src/mongo/db/repl/replication_coordinator_impl.cpp index a36e5207767..210c65c13af 100644 --- a/src/mongo/db/repl/replication_coordinator_impl.cpp +++ b/src/mongo/db/repl/replication_coordinator_impl.cpp @@ -564,7 +564,7 @@ void ReplicationCoordinatorImpl::_finishLoadLocalConfig( } } else { // The node is an arbiter hence will not need logical clock for external operations. - LogicalClock::get(getServiceContext())->setEnabled(false); + LogicalClock::get(getServiceContext())->disable(); auto validator = LogicalTimeValidator::get(getServiceContext()); if (validator) { validator->resetKeyManager(); diff --git a/src/mongo/db/repl/replication_coordinator_impl_heartbeat.cpp b/src/mongo/db/repl/replication_coordinator_impl_heartbeat.cpp index 849fc58cdc1..200d9984dd1 100644 --- a/src/mongo/db/repl/replication_coordinator_impl_heartbeat.cpp +++ b/src/mongo/db/repl/replication_coordinator_impl_heartbeat.cpp @@ -531,7 +531,7 @@ void ReplicationCoordinatorImpl::_heartbeatReconfigStore( newConfig.getMemberAt(myIndex.getValue()).isArbiter(); if (isArbiter) { - LogicalClock::get(getGlobalServiceContext())->setEnabled(false); + LogicalClock::get(getGlobalServiceContext())->disable(); if (auto validator = LogicalTimeValidator::get(getGlobalServiceContext())) { validator->resetKeyManager(); } |