summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMisha Tyulenev <misha@mongodb.com>2018-09-24 20:49:41 -0400
committerMisha Tyulenev <misha@mongodb.com>2018-09-28 16:20:30 -0400
commitef72d37036d96ba77f7b528df1b8952441cc66ad (patch)
tree2cec733b0daa8ae2ef45404e05386efd0c252470 /src
parent551a868c6cd7c11c2582b8e0ae1360f77adfc721 (diff)
downloadmongo-ef72d37036d96ba77f7b528df1b8952441cc66ad.tar.gz
SERVER-29160 bump timeout for migration operations
(cherry picked from commit 3f618b86df0473ab905cc4a0ad78f4be8d3428e3)
Diffstat (limited to 'src')
-rw-r--r--src/mongo/db/commands.cpp2
-rw-r--r--src/mongo/db/s/balancer/migration_manager.cpp2
-rw-r--r--src/mongo/db/s/balancer/scoped_migration_request.cpp2
-rw-r--r--src/mongo/db/s/collection_range_deleter.cpp2
-rw-r--r--src/mongo/db/s/config/configsvr_move_primary_command.cpp2
-rw-r--r--src/mongo/db/s/migration_source_manager.cpp2
-rw-r--r--src/mongo/db/s/sharding_state_recovery.cpp2
-rw-r--r--src/mongo/db/sessions_collection.cpp11
-rw-r--r--src/mongo/db/write_concern_options.cpp5
-rw-r--r--src/mongo/db/write_concern_options.h5
-rw-r--r--src/mongo/s/catalog/dist_lock_catalog.cpp2
-rw-r--r--src/mongo/s/catalog/sharding_catalog_client.cpp3
-rw-r--r--src/mongo/s/catalog/sharding_catalog_test.cpp2
-rw-r--r--src/mongo/s/commands/cluster_add_shard_to_zone_cmd.cpp2
-rw-r--r--src/mongo/s/commands/cluster_remove_shard_from_zone_cmd.cpp2
-rw-r--r--src/mongo/s/commands/cluster_update_zone_key_range_cmd.cpp2
-rw-r--r--src/mongo/s/commands/cluster_user_management_commands.cpp2
-rw-r--r--src/mongo/s/request_types/add_shard_request_type.cpp2
18 files changed, 37 insertions, 15 deletions
diff --git a/src/mongo/db/commands.cpp b/src/mongo/db/commands.cpp
index 3fbc89a5687..953f1b19576 100644
--- a/src/mongo/db/commands.cpp
+++ b/src/mongo/db/commands.cpp
@@ -78,7 +78,7 @@ const WriteConcernOptions kMajorityWriteConcern(
// Note: Even though we're setting UNSET here, kMajority implies JOURNAL if journaling is
// supported by the mongod.
WriteConcernOptions::SyncMode::UNSET,
- Seconds(60));
+ WriteConcernOptions::kWriteConcernTimeoutUserCommand);
} // namespace
diff --git a/src/mongo/db/s/balancer/migration_manager.cpp b/src/mongo/db/s/balancer/migration_manager.cpp
index 071e7363c47..47305b9b197 100644
--- a/src/mongo/db/s/balancer/migration_manager.cpp
+++ b/src/mongo/db/s/balancer/migration_manager.cpp
@@ -66,7 +66,7 @@ namespace {
const char kChunkTooBig[] = "chunkTooBig"; // TODO: delete in 3.8
const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority,
WriteConcernOptions::SyncMode::UNSET,
- Seconds(15));
+ WriteConcernOptions::kWriteConcernTimeoutMigration);
/**
* Parses the 'commandResponse' and converts it to a status to use as the outcome of the command.
diff --git a/src/mongo/db/s/balancer/scoped_migration_request.cpp b/src/mongo/db/s/balancer/scoped_migration_request.cpp
index fda4b5dbbfc..31b84eacc6e 100644
--- a/src/mongo/db/s/balancer/scoped_migration_request.cpp
+++ b/src/mongo/db/s/balancer/scoped_migration_request.cpp
@@ -45,7 +45,7 @@ namespace mongo {
namespace {
const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority,
WriteConcernOptions::SyncMode::UNSET,
- Seconds(15));
+ WriteConcernOptions::kWriteConcernTimeoutMigration);
const int kDuplicateKeyErrorMaxRetries = 2;
}
diff --git a/src/mongo/db/s/collection_range_deleter.cpp b/src/mongo/db/s/collection_range_deleter.cpp
index a10cc4a2e29..85430f63633 100644
--- a/src/mongo/db/s/collection_range_deleter.cpp
+++ b/src/mongo/db/s/collection_range_deleter.cpp
@@ -75,7 +75,7 @@ using DeleteNotification = CollectionRangeDeleter::DeleteNotification;
const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority,
WriteConcernOptions::SyncMode::UNSET,
- Seconds(60));
+ WriteConcernOptions::kWriteConcernTimeoutSharding);
boost::optional<DeleteNotification> checkOverlap(std::list<Deletion> const& deletions,
ChunkRange const& range) {
diff --git a/src/mongo/db/s/config/configsvr_move_primary_command.cpp b/src/mongo/db/s/config/configsvr_move_primary_command.cpp
index 8b6b1491528..59054f607ab 100644
--- a/src/mongo/db/s/config/configsvr_move_primary_command.cpp
+++ b/src/mongo/db/s/config/configsvr_move_primary_command.cpp
@@ -58,7 +58,7 @@ namespace {
const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority,
WriteConcernOptions::SyncMode::UNSET,
- Seconds(60));
+ WriteConcernOptions::kWriteConcernTimeoutSharding);
/**
* Internal sharding command run on config servers to change a database's primary shard.
diff --git a/src/mongo/db/s/migration_source_manager.cpp b/src/mongo/db/s/migration_source_manager.cpp
index ea15dfb0b6a..a950e064642 100644
--- a/src/mongo/db/s/migration_source_manager.cpp
+++ b/src/mongo/db/s/migration_source_manager.cpp
@@ -76,7 +76,7 @@ const char kControlChunkVersionField[] = "controlChunkVersion";
const char kWriteConcernField[] = "writeConcern";
const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority,
WriteConcernOptions::SyncMode::UNSET,
- Seconds(15));
+ WriteConcernOptions::kWriteConcernTimeoutMigration);
/**
* Best-effort attempt to ensure the recipient shard has refreshed its routing table to
diff --git a/src/mongo/db/s/sharding_state_recovery.cpp b/src/mongo/db/s/sharding_state_recovery.cpp
index 51e71a1c4cf..28ca9b29735 100644
--- a/src/mongo/db/s/sharding_state_recovery.cpp
+++ b/src/mongo/db/s/sharding_state_recovery.cpp
@@ -64,7 +64,7 @@ const char kShardName[] = "shardName"; // TODO(SERVER
const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority,
WriteConcernOptions::SyncMode::UNSET,
- Seconds(15));
+ WriteConcernOptions::kWriteConcernTimeoutSharding);
const WriteConcernOptions kLocalWriteConcern(1,
WriteConcernOptions::SyncMode::UNSET,
diff --git a/src/mongo/db/sessions_collection.cpp b/src/mongo/db/sessions_collection.cpp
index a0ff519c81d..c440efdd4c8 100644
--- a/src/mongo/db/sessions_collection.cpp
+++ b/src/mongo/db/sessions_collection.cpp
@@ -56,6 +56,15 @@ namespace {
// comfortably be able to stay under, even with 10k user names.
constexpr size_t kMaxBatchSize = 1000;
+// Used to refresh or remove items from the session collection with write
+// concern majority
+const BSONObj kMajorityWriteConcern =
+ WriteConcernOptions(WriteConcernOptions::kMajority,
+ WriteConcernOptions::SyncMode::UNSET,
+ WriteConcernOptions::kWriteConcernTimeoutSystem)
+ .toBSON();
+
+
BSONObj lsidQuery(const LogicalSessionId& lsid) {
return BSON(LogicalSessionRecord::kIdFieldName << lsid.toBSON());
}
@@ -209,6 +218,7 @@ Status SessionsCollection::doRefresh(const NamespaceString& ns,
batch->append("update", ns.coll());
batch->append("ordered", false);
batch->append("allowImplicitCollectionCreation", false);
+ batch->append(WriteConcernOptions::kWriteConcernField, kMajorityWriteConcern);
};
auto add = [](BSONArrayBuilder* entries, const LogicalSessionRecord& record) {
@@ -225,6 +235,7 @@ Status SessionsCollection::doRemove(const NamespaceString& ns,
auto init = [ns](BSONObjBuilder* batch) {
batch->append("delete", ns.coll());
batch->append("ordered", false);
+ batch->append(WriteConcernOptions::kWriteConcernField, kMajorityWriteConcern);
};
auto add = [](BSONArrayBuilder* builder, const LogicalSessionId& lsid) {
diff --git a/src/mongo/db/write_concern_options.cpp b/src/mongo/db/write_concern_options.cpp
index 51b8484a51b..3c1766304ec 100644
--- a/src/mongo/db/write_concern_options.cpp
+++ b/src/mongo/db/write_concern_options.cpp
@@ -69,6 +69,11 @@ const BSONObj WriteConcernOptions::Default = BSONObj();
const BSONObj WriteConcernOptions::Acknowledged(BSON("w" << W_NORMAL));
const BSONObj WriteConcernOptions::Unacknowledged(BSON("w" << W_NONE));
const BSONObj WriteConcernOptions::Majority(BSON("w" << WriteConcernOptions::kMajority));
+const Seconds WriteConcernOptions::kWriteConcernTimeoutSystem{15};
+const Seconds WriteConcernOptions::kWriteConcernTimeoutMigration{30};
+const Seconds WriteConcernOptions::kWriteConcernTimeoutSharding{60};
+const Seconds WriteConcernOptions::kWriteConcernTimeoutUserCommand{60};
+
WriteConcernOptions::WriteConcernOptions(int numNodes, SyncMode sync, int timeout)
: WriteConcernOptions(numNodes, sync, Milliseconds(timeout)) {}
diff --git a/src/mongo/db/write_concern_options.h b/src/mongo/db/write_concern_options.h
index d0a3be810e3..4d9199c9868 100644
--- a/src/mongo/db/write_concern_options.h
+++ b/src/mongo/db/write_concern_options.h
@@ -50,6 +50,11 @@ public:
static const StringData kWriteConcernField;
static const char kMajority[]; // = "majority"
+ static const Seconds kWriteConcernTimeoutSystem;
+ static const Seconds kWriteConcernTimeoutMigration;
+ static const Seconds kWriteConcernTimeoutSharding;
+ static const Seconds kWriteConcernTimeoutUserCommand;
+
WriteConcernOptions() {
reset();
}
diff --git a/src/mongo/s/catalog/dist_lock_catalog.cpp b/src/mongo/s/catalog/dist_lock_catalog.cpp
index edd7bccc245..17267287c36 100644
--- a/src/mongo/s/catalog/dist_lock_catalog.cpp
+++ b/src/mongo/s/catalog/dist_lock_catalog.cpp
@@ -41,7 +41,7 @@ const WriteConcernOptions DistLockCatalog::kMajorityWriteConcern(
// Note: Even though we're setting UNSET here, kMajority implies JOURNAL if journaling is
// supported by this mongod.
WriteConcernOptions::SyncMode::UNSET,
- Seconds(15));
+ WriteConcernOptions::kWriteConcernTimeoutSystem);
DistLockCatalog::DistLockCatalog() = default;
diff --git a/src/mongo/s/catalog/sharding_catalog_client.cpp b/src/mongo/s/catalog/sharding_catalog_client.cpp
index ed17aa3b743..eeda90c9d03 100644
--- a/src/mongo/s/catalog/sharding_catalog_client.cpp
+++ b/src/mongo/s/catalog/sharding_catalog_client.cpp
@@ -28,6 +28,7 @@
#include "mongo/platform/basic.h"
+#include "mongo/db/write_concern_options.h"
#include "mongo/s/catalog/sharding_catalog_client.h"
namespace mongo {
@@ -38,7 +39,7 @@ const WriteConcernOptions ShardingCatalogClient::kMajorityWriteConcern(
// supported by mongod and writeConcernMajorityJournalDefault is set to true in the
// ReplSetConfig.
WriteConcernOptions::SyncMode::UNSET,
- Seconds(15));
+ WriteConcernOptions::kWriteConcernTimeoutSharding);
const WriteConcernOptions ShardingCatalogClient::kLocalWriteConcern(
1, WriteConcernOptions::SyncMode::UNSET, Seconds(0));
diff --git a/src/mongo/s/catalog/sharding_catalog_test.cpp b/src/mongo/s/catalog/sharding_catalog_test.cpp
index 88356d51049..96e894108b9 100644
--- a/src/mongo/s/catalog/sharding_catalog_test.cpp
+++ b/src/mongo/s/catalog/sharding_catalog_test.cpp
@@ -1215,7 +1215,7 @@ TEST_F(ShardingCatalogClientTest, ApplyChunkOpsDeprecatedSuccessful) {
ASSERT_BSONOBJ_EQ(BSON("w"
<< "majority"
<< "wtimeout"
- << 15000),
+ << 60000),
request.cmdObj["writeConcern"].Obj());
ASSERT_BSONOBJ_EQ(BSON(rpc::kReplSetMetadataFieldName << 1),
rpc::TrackingMetadata::removeTrackingData(request.metadata));
diff --git a/src/mongo/s/commands/cluster_add_shard_to_zone_cmd.cpp b/src/mongo/s/commands/cluster_add_shard_to_zone_cmd.cpp
index d05c086d75a..3801678df15 100644
--- a/src/mongo/s/commands/cluster_add_shard_to_zone_cmd.cpp
+++ b/src/mongo/s/commands/cluster_add_shard_to_zone_cmd.cpp
@@ -57,7 +57,7 @@ const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority,
// writeConcernMajorityJournalDefault is set to true
// in the ReplSetConfig.
WriteConcernOptions::SyncMode::UNSET,
- Seconds(15));
+ WriteConcernOptions::kWriteConcernTimeoutSharding);
/**
* {
diff --git a/src/mongo/s/commands/cluster_remove_shard_from_zone_cmd.cpp b/src/mongo/s/commands/cluster_remove_shard_from_zone_cmd.cpp
index cfff64d3625..2965d04522f 100644
--- a/src/mongo/s/commands/cluster_remove_shard_from_zone_cmd.cpp
+++ b/src/mongo/s/commands/cluster_remove_shard_from_zone_cmd.cpp
@@ -57,7 +57,7 @@ const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority,
// writeConcernMajorityJournalDefault is set to true
// in the ReplSetConfig.
WriteConcernOptions::SyncMode::UNSET,
- Seconds(15));
+ WriteConcernOptions::kWriteConcernTimeoutSharding);
/**
* {
diff --git a/src/mongo/s/commands/cluster_update_zone_key_range_cmd.cpp b/src/mongo/s/commands/cluster_update_zone_key_range_cmd.cpp
index 22d926ac053..e1171709042 100644
--- a/src/mongo/s/commands/cluster_update_zone_key_range_cmd.cpp
+++ b/src/mongo/s/commands/cluster_update_zone_key_range_cmd.cpp
@@ -58,7 +58,7 @@ const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority,
// writeConcernMajorityJournalDefault is set to true
// in the ReplSetConfig.
WriteConcernOptions::SyncMode::UNSET,
- Seconds(15));
+ WriteConcernOptions::kWriteConcernTimeoutSharding);
/**
* {
diff --git a/src/mongo/s/commands/cluster_user_management_commands.cpp b/src/mongo/s/commands/cluster_user_management_commands.cpp
index 323b51c9403..8f56725f055 100644
--- a/src/mongo/s/commands/cluster_user_management_commands.cpp
+++ b/src/mongo/s/commands/cluster_user_management_commands.cpp
@@ -61,7 +61,7 @@ const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority,
// kMajority implies JOURNAL if journaling is
// supported by this mongod.
WriteConcernOptions::SyncMode::UNSET,
- Seconds(30));
+ WriteConcernOptions::kWriteConcernTimeoutSharding);
class CmdCreateUser : public BasicCommand {
public:
diff --git a/src/mongo/s/request_types/add_shard_request_type.cpp b/src/mongo/s/request_types/add_shard_request_type.cpp
index bb3806ff416..fc19d12ff53 100644
--- a/src/mongo/s/request_types/add_shard_request_type.cpp
+++ b/src/mongo/s/request_types/add_shard_request_type.cpp
@@ -52,7 +52,7 @@ const BSONField<long long> AddShardRequest::maxSizeMB("maxSize");
namespace {
const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority,
WriteConcernOptions::SyncMode::UNSET,
- Seconds(15));
+ WriteConcernOptions::kWriteConcernTimeoutSharding);
}
AddShardRequest::AddShardRequest(ConnectionString connString)