summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJack Mulrow <jack.mulrow@mongodb.com>2018-05-10 10:39:04 -0400
committerJack Mulrow <jack.mulrow@mongodb.com>2018-05-14 11:17:11 -0400
commit15d7cab640425bcb4de62e6b3c13d9188181f5ce (patch)
tree00f0d5c9b7ffdad41eae1eabed904bd82dec97db /src
parent8e27c2b49ba17fe9b02695efb29a6322b56c2f23 (diff)
downloadmongo-15d7cab640425bcb4de62e6b3c13d9188181f5ce.tar.gz
SERVER-34674 Remove _isEnabled invariants from the logical clock
Diffstat (limited to 'src')
-rw-r--r--src/mongo/db/logical_clock.cpp6
-rw-r--r--src/mongo/db/logical_clock.h9
-rw-r--r--src/mongo/db/repl/replication_coordinator_impl.cpp2
-rw-r--r--src/mongo/db/repl/replication_coordinator_impl_heartbeat.cpp2
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();
}