diff options
author | Misha Tyulenev <misha@mongodb.com> | 2018-09-24 20:49:41 -0400 |
---|---|---|
committer | Misha Tyulenev <misha@mongodb.com> | 2018-09-24 20:50:33 -0400 |
commit | 3f618b86df0473ab905cc4a0ad78f4be8d3428e3 (patch) | |
tree | 2f2258875e62af55e31656120ff402cbe6eeae12 | |
parent | c5b5185e541fe96c3ff9e086a716ae0e6a9aefde (diff) | |
download | mongo-3f618b86df0473ab905cc4a0ad78f4be8d3428e3.tar.gz |
SERVER-29160 bump timeout for migration operations
20 files changed, 33 insertions, 21 deletions
diff --git a/src/mongo/db/commands.cpp b/src/mongo/db/commands.cpp index a30ad90600c..921b9d7a397 100644 --- a/src/mongo/db/commands.cpp +++ b/src/mongo/db/commands.cpp @@ -72,7 +72,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); // Returns true if found to be authorized, false if undecided. Throws if unauthorized. bool checkAuthorizationImplPreParse(OperationContext* opCtx, diff --git a/src/mongo/db/s/balancer/migration_manager.cpp b/src/mongo/db/s/balancer/migration_manager.cpp index 607f2635829..f35f345e5f9 100644 --- a/src/mongo/db/s/balancer/migration_manager.cpp +++ b/src/mongo/db/s/balancer/migration_manager.cpp @@ -66,7 +66,7 @@ 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 74511ab1823..46aeadf7e40 100644 --- a/src/mongo/db/s/balancer/scoped_migration_request.cpp +++ b/src/mongo/db/s/balancer/scoped_migration_request.cpp @@ -43,7 +43,7 @@ namespace { const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority, WriteConcernOptions::SyncMode::UNSET, - Seconds(15)); + WriteConcernOptions::kWriteConcernTimeoutMigration); const int kDuplicateKeyErrorMaxRetries = 2; } // namespace diff --git a/src/mongo/db/s/collection_range_deleter.cpp b/src/mongo/db/s/collection_range_deleter.cpp index f3b3415ff52..d2243f9ec3c 100644 --- a/src/mongo/db/s/collection_range_deleter.cpp +++ b/src/mongo/db/s/collection_range_deleter.cpp @@ -76,7 +76,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 0624528da1a..efc70fdd072 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/config/sharding_catalog_manager_add_shard_test.cpp b/src/mongo/db/s/config/sharding_catalog_manager_add_shard_test.cpp index 7a2a6ecca9f..b5863517eae 100644 --- a/src/mongo/db/s/config/sharding_catalog_manager_add_shard_test.cpp +++ b/src/mongo/db/s/config/sharding_catalog_manager_add_shard_test.cpp @@ -370,7 +370,7 @@ TEST_F(AddShardTest, CreateShardIdentityUpsertForAddShard) { << BSON("w" << "majority" << "wtimeout" - << 15000) + << 60000) << "allowImplicitCollectionCreation" << true); auto addShardCmd = add_shard_util::createAddShardCmd(operationContext(), shardName); diff --git a/src/mongo/db/s/migration_source_manager.cpp b/src/mongo/db/s/migration_source_manager.cpp index deb72b68e06..c79f84eaae5 100644 --- a/src/mongo/db/s/migration_source_manager.cpp +++ b/src/mongo/db/s/migration_source_manager.cpp @@ -77,7 +77,7 @@ const char kMigratedChunkVersionField[] = "migratedChunkVersion"; 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 8b6e9d99f22..0eecfbfe135 100644 --- a/src/mongo/db/s/sharding_state_recovery.cpp +++ b/src/mongo/db/s/sharding_state_recovery.cpp @@ -65,7 +65,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 fe60b747c55..612b918792a 100644 --- a/src/mongo/db/sessions_collection.cpp +++ b/src/mongo/db/sessions_collection.cpp @@ -58,10 +58,11 @@ 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, - Seconds(15)) - .toBSON(); +const BSONObj kMajorityWriteConcern = + WriteConcernOptions(WriteConcernOptions::kMajority, + WriteConcernOptions::SyncMode::UNSET, + WriteConcernOptions::kWriteConcernTimeoutSystem) + .toBSON(); BSONObj lsidQuery(const LogicalSessionId& lsid) { diff --git a/src/mongo/db/write_concern_options.cpp b/src/mongo/db/write_concern_options.cpp index 26f5778be37..19f44ed8d74 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 a809a2a1de5..3938a39f99b 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 fba1b651576..0028c6d9dd5 100644 --- a/src/mongo/s/catalog/sharding_catalog_test.cpp +++ b/src/mongo/s/catalog/sharding_catalog_test.cpp @@ -1176,7 +1176,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 8bd17b2f011..e2eaa98f111 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 @@ -50,7 +50,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 5c18b49aaf2..f6b62f41d7a 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 a54f01bf99e..88f5a1b8f4a 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 1d4d836fc09..244bcf4a572 100644 --- a/src/mongo/s/commands/cluster_user_management_commands.cpp +++ b/src/mongo/s/commands/cluster_user_management_commands.cpp @@ -58,7 +58,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) diff --git a/src/mongo/s/sharding_router_test_fixture.cpp b/src/mongo/s/sharding_router_test_fixture.cpp index e42c1e41316..264bd25240b 100644 --- a/src/mongo/s/sharding_router_test_fixture.cpp +++ b/src/mongo/s/sharding_router_test_fixture.cpp @@ -354,7 +354,7 @@ void ShardingTestFixture::expectConfigCollectionCreate(const HostAndPort& config << BSON("w" << "majority" << "wtimeout" - << 15000) + << 60000) << "maxTimeMS" << 30000); ASSERT_BSONOBJ_EQ(expectedCreateCmd, request.cmdObj); |