diff options
author | Misha Tyulenev <misha@mongodb.com> | 2018-10-03 13:28:33 -0400 |
---|---|---|
committer | Misha Tyulenev <misha@mongodb.com> | 2018-10-03 13:28:33 -0400 |
commit | 54cf97e5366ad421ed775d6fd74d2aa4fddaed02 (patch) | |
tree | dd40cea86447f8538f4064398b88ec257f16cf93 | |
parent | 1f5551f610f7f7ab75fcfe8479670bbf9ba04892 (diff) | |
download | mongo-54cf97e5366ad421ed775d6fd74d2aa4fddaed02.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 87f02341918..8fc8e3c69a5 100644 --- a/src/mongo/db/commands.cpp +++ b/src/mongo/db/commands.cpp @@ -68,7 +68,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 267b7682f35..d46560ca84b 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 2bf06914bd5..9b1f2456ded 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 5dbab2f5023..9ffd937f786 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 565729e8458..a7c6f0f49f4 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 @@ -357,7 +357,7 @@ TEST_F(AddShardTest, CreateShardIdentityUpsertForAddShard) { << BSON("w" << "majority" << "wtimeout" - << 15000) + << 60000) << "allowImplicitCollectionCreation" << true); ASSERT_BSONOBJ_EQ(expectedBSON, diff --git a/src/mongo/db/s/migration_source_manager.cpp b/src/mongo/db/s/migration_source_manager.cpp index a07f6f0f8e1..f921ff239f6 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 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 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 7c40f6117a9..c440efdd4c8 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..64a788b2520 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{60}; +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 ce2c79877fe..1005e9ef1a8 100644 --- a/src/mongo/s/catalog/sharding_catalog_test.cpp +++ b/src/mongo/s/catalog/sharding_catalog_test.cpp @@ -1187,7 +1187,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 f899393c2f5..8174cd017ad 100644 --- a/src/mongo/s/commands/cluster_user_management_commands.cpp +++ b/src/mongo/s/commands/cluster_user_management_commands.cpp @@ -59,7 +59,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 d6b94f4c6df..f6f48097db3 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); |