summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaloian Manassiev <kaloian.manassiev@mongodb.com>2016-07-28 10:33:56 -0400
committerKaloian Manassiev <kaloian.manassiev@mongodb.com>2016-07-29 09:28:22 -0400
commitac0e731677e4c377917acaf95030873d0162df17 (patch)
tree2b5f27e70280c8deea556815551a5796767f4ea5
parent3e755ba53b413f430d1105937de90030455c6135 (diff)
downloadmongo-ac0e731677e4c377917acaf95030873d0162df17.tar.gz
SERVER-24842 ShardingStateRecovery::recover cleanup should not wait for replication
-rw-r--r--src/mongo/db/s/sharding_state_recovery.cpp9
-rw-r--r--src/mongo/db/write_concern_options.cpp3
-rw-r--r--src/mongo/db/write_concern_options.h2
3 files changed, 11 insertions, 3 deletions
diff --git a/src/mongo/db/s/sharding_state_recovery.cpp b/src/mongo/db/s/sharding_state_recovery.cpp
index 804f4b21ca2..2863d044c2f 100644
--- a/src/mongo/db/s/sharding_state_recovery.cpp
+++ b/src/mongo/db/s/sharding_state_recovery.cpp
@@ -62,10 +62,13 @@ const char kShardName[] = "shardName";
const char kMinOpTime[] = "minOpTime";
const char kMinOpTimeUpdaters[] = "minOpTimeUpdaters";
-const Seconds kWriteTimeout(15);
const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority,
WriteConcernOptions::SyncMode::UNSET,
- kWriteTimeout);
+ Seconds(15));
+
+const WriteConcernOptions kLocalWriteConcern(1,
+ WriteConcernOptions::SyncMode::UNSET,
+ Milliseconds(0));
MONGO_EXPORT_STARTUP_SERVER_PARAMETER(recoverShardingState, bool, true);
@@ -305,7 +308,7 @@ Status ShardingStateRecovery::recover(OperationContext* txn) {
<< grid.shardRegistry()->getConfigOpTime();
// Finally, clear the recovery document so next time we don't need to recover
- status = modifyRecoveryDocument(txn, RecoveryDocument::Clear, kMajorityWriteConcern);
+ status = modifyRecoveryDocument(txn, RecoveryDocument::Clear, kLocalWriteConcern);
if (!status.isOK()) {
warning() << "Failed to reset sharding state recovery document due to " << status;
}
diff --git a/src/mongo/db/write_concern_options.cpp b/src/mongo/db/write_concern_options.cpp
index 58af7b36a9d..a7dbd843566 100644
--- a/src/mongo/db/write_concern_options.cpp
+++ b/src/mongo/db/write_concern_options.cpp
@@ -62,6 +62,9 @@ const BSONObj WriteConcernOptions::Majority(BSON("w" << WriteConcernOptions::kMa
WriteConcernOptions::WriteConcernOptions(int numNodes, SyncMode sync, int timeout)
: syncMode(sync), wNumNodes(numNodes), wTimeout(timeout) {}
+
+WriteConcernOptions::WriteConcernOptions(int numNodes, SyncMode sync, Milliseconds timeout)
+ : syncMode(sync), wNumNodes(numNodes), wTimeout(durationCount<Milliseconds>(timeout)) {}
WriteConcernOptions::WriteConcernOptions(const std::string& mode, SyncMode sync, int timeout)
: syncMode(sync), wNumNodes(0), wMode(mode), wTimeout(timeout) {}
diff --git a/src/mongo/db/write_concern_options.h b/src/mongo/db/write_concern_options.h
index 28bf6b77f9b..66ca84f8014 100644
--- a/src/mongo/db/write_concern_options.h
+++ b/src/mongo/db/write_concern_options.h
@@ -55,6 +55,8 @@ public:
WriteConcernOptions(int numNodes, SyncMode sync, int timeout);
+ WriteConcernOptions(int numNodes, SyncMode sync, Milliseconds timeout);
+
WriteConcernOptions(const std::string& mode, SyncMode sync, int timeout);
WriteConcernOptions(const std::string& mode, SyncMode sync, Milliseconds timeout);