diff options
author | Misha Tyulenev <misha@mongodb.com> | 2018-09-24 20:49:41 -0400 |
---|---|---|
committer | Misha Tyulenev <misha@mongodb.com> | 2018-09-28 16:20:30 -0400 |
commit | ef72d37036d96ba77f7b528df1b8952441cc66ad (patch) | |
tree | 2cec733b0daa8ae2ef45404e05386efd0c252470 /src | |
parent | 551a868c6cd7c11c2582b8e0ae1360f77adfc721 (diff) | |
download | mongo-ef72d37036d96ba77f7b528df1b8952441cc66ad.tar.gz |
SERVER-29160 bump timeout for migration operations
(cherry picked from commit 3f618b86df0473ab905cc4a0ad78f4be8d3428e3)
Diffstat (limited to 'src')
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) |