diff options
author | Paolo Polato <paolo.polato@mongodb.com> | 2021-08-10 07:51:49 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-08-10 10:46:17 +0000 |
commit | 1242fd1ee165d803fde22974aa232ebaec342c0e (patch) | |
tree | 4ecf75036c657f3fc2c254935809af26c02b885c | |
parent | b788a021e822ed30bd0f04dc972038721ba55688 (diff) | |
download | mongo-1242fd1ee165d803fde22974aa232ebaec342c0e.tar.gz |
SERVER-59213 Refactoring MoveChunkRequest::appendAsCommand()
6 files changed, 17 insertions, 42 deletions
diff --git a/src/mongo/db/s/active_migrations_registry_test.cpp b/src/mongo/db/s/active_migrations_registry_test.cpp index 4d3418fb331..bfe59908b24 100644 --- a/src/mongo/db/s/active_migrations_registry_test.cpp +++ b/src/mongo/db/s/active_migrations_registry_test.cpp @@ -66,7 +66,6 @@ MoveChunkRequest createMoveChunkRequest(const NamespaceString& nss) { &builder, nss, chunkVersion, - assertGet(ConnectionString::parse("TestConfigRS/CS1:12345,CS2:12345,CS3:12345")), ShardId("shard0001"), ShardId("shard0002"), ChunkRange(BSON("Key" << -100), BSON("Key" << 100)), diff --git a/src/mongo/db/s/balancer/migration_manager.cpp b/src/mongo/db/s/balancer/migration_manager.cpp index e5583bb254c..eaa55ecf332 100644 --- a/src/mongo/db/s/balancer/migration_manager.cpp +++ b/src/mongo/db/s/balancer/migration_manager.cpp @@ -467,26 +467,16 @@ std::shared_ptr<Notification<RemoteCommandResponse>> MigrationManager::_schedule } BSONObjBuilder builder; - MoveChunkRequest::appendAsCommand( - &builder, - nss, - migrateInfo.version, - repl::ReplicationCoordinator::get(opCtx)->getConfigConnectionString(), - migrateInfo.from, - migrateInfo.to, - ChunkRange(migrateInfo.minKey, migrateInfo.maxKey), - maxChunkSizeBytes, - secondaryThrottle, - waitForDelete, - migrateInfo.forceJumbo); - - // Commands sent to shards that accept writeConcern, must always have writeConcern. So if the - // MoveChunkRequest didn't add writeConcern (from secondaryThrottle), then we add the implicit - // server default writeConcern. - if (!builder.hasField(WriteConcernOptions::kWriteConcernField)) { - builder.append(WriteConcernOptions::kWriteConcernField, - WriteConcernOptions::kInternalWriteDefault); - } + MoveChunkRequest::appendAsCommand(&builder, + nss, + migrateInfo.version, + migrateInfo.from, + migrateInfo.to, + ChunkRange(migrateInfo.minKey, migrateInfo.maxKey), + maxChunkSizeBytes, + secondaryThrottle, + waitForDelete, + migrateInfo.forceJumbo); stdx::lock_guard<Latch> lock(_mutex); diff --git a/src/mongo/db/s/migration_chunk_cloner_source_legacy_test.cpp b/src/mongo/db/s/migration_chunk_cloner_source_legacy_test.cpp index ce33397e38d..8331d16be84 100644 --- a/src/mongo/db/s/migration_chunk_cloner_source_legacy_test.cpp +++ b/src/mongo/db/s/migration_chunk_cloner_source_legacy_test.cpp @@ -54,11 +54,6 @@ using unittest::assertGet; const NamespaceString kNss("TestDB", "TestColl"); const std::string kShardKey = "X"; const BSONObj kShardKeyPattern{BSON(kShardKey << 1)}; -const ConnectionString kConfigConnStr = - ConnectionString::forReplicaSet("Donor", - {HostAndPort("DonorHost1:1234"), - HostAndPort{"DonorHost2:1234"}, - HostAndPort{"DonorHost3:1234"}}); const ConnectionString kDonorConnStr = ConnectionString::forReplicaSet("Donor", {HostAndPort("DonorHost1:1234"), @@ -212,7 +207,6 @@ protected: &cmdBuilder, kNss, ChunkVersion(1, 0, OID::gen(), boost::none /* timestamp */), - kConfigConnStr, kDonorConnStr.getSetName(), kRecipientConnStr.getSetName(), chunkRange, diff --git a/src/mongo/s/request_types/move_chunk_request.cpp b/src/mongo/s/request_types/move_chunk_request.cpp index 43320512020..a6804b54887 100644 --- a/src/mongo/s/request_types/move_chunk_request.cpp +++ b/src/mongo/s/request_types/move_chunk_request.cpp @@ -40,8 +40,6 @@ namespace { const char kMoveChunk[] = "moveChunk"; const char kEpoch[] = "epoch"; -const char kChunkVersion[] = "chunkVersion"; -const char kConfigServerConnectionString[] = "configdb"; const char kFromShardId[] = "fromShard"; const char kToShardId[] = "toShard"; const char kMaxChunkSizeBytes[] = "maxChunkSizeBytes"; @@ -177,7 +175,6 @@ StatusWith<MoveChunkRequest> MoveChunkRequest::createFromCommand(NamespaceString void MoveChunkRequest::appendAsCommand(BSONObjBuilder* builder, const NamespaceString& nss, ChunkVersion chunkVersion, - const ConnectionString& configServerConnectionString, const ShardId& fromShardId, const ShardId& toShardId, const ChunkRange& range, @@ -189,10 +186,7 @@ void MoveChunkRequest::appendAsCommand(BSONObjBuilder* builder, invariant(nss.isValid()); builder->append(kMoveChunk, nss.ns()); - chunkVersion.appendToCommand(builder); // 3.4 shard compatibility builder->append(kEpoch, chunkVersion.epoch()); - // config connection string is included for 3.4 shard compatibility - builder->append(kConfigServerConnectionString, configServerConnectionString.toString()); builder->append(kFromShardId, fromShardId.toString()); builder->append(kToShardId, toShardId.toString()); range.append(builder); @@ -200,6 +194,13 @@ void MoveChunkRequest::appendAsCommand(BSONObjBuilder* builder, secondaryThrottle.append(builder); builder->append(kWaitForDelete, waitForDelete); builder->append(kForceJumbo, forceJumbo); + // Commands sent to shards that accept writeConcern, must always have writeConcern. So if the + // MoveChunkRequest didn't add writeConcern (from secondaryThrottle), then we add the implicit + // server default writeConcern. + if (!builder->hasField(WriteConcernOptions::kWriteConcernField)) { + builder->append(WriteConcernOptions::kWriteConcernField, + WriteConcernOptions::kInternalWriteDefault); + } } bool MoveChunkRequest::operator==(const MoveChunkRequest& other) const { diff --git a/src/mongo/s/request_types/move_chunk_request.h b/src/mongo/s/request_types/move_chunk_request.h index eddce645c43..d71ff3b4a2a 100644 --- a/src/mongo/s/request_types/move_chunk_request.h +++ b/src/mongo/s/request_types/move_chunk_request.h @@ -82,7 +82,6 @@ public: static void appendAsCommand(BSONObjBuilder* builder, const NamespaceString& nss, ChunkVersion chunkVersion, - const ConnectionString& configServerConnectionString, const ShardId& fromShardId, const ShardId& toShardId, const ChunkRange& range, diff --git a/src/mongo/s/request_types/move_chunk_request_test.cpp b/src/mongo/s/request_types/move_chunk_request_test.cpp index 02b0c001182..73a1b95490c 100644 --- a/src/mongo/s/request_types/move_chunk_request_test.cpp +++ b/src/mongo/s/request_types/move_chunk_request_test.cpp @@ -40,8 +40,6 @@ using unittest::assertGet; namespace { -const ConnectionString kTestConfigServerConnectionString = - assertGet(ConnectionString::parse("TestConfigRS/CS1:12345,CS2:12345,CS3:12345")); const NamespaceString kNs("TestDB.TestColl"); const BSONObj kMin = BSON("Key" << -100); const BSONObj kMax = BSON("Key" << 100); @@ -58,7 +56,6 @@ TEST(MoveChunkRequest, Roundtrip) { &builder, kNs, chunkVersion, - kTestConfigServerConnectionString, kFromShard, kToShard, ChunkRange(kMin, kMax), @@ -69,8 +66,6 @@ TEST(MoveChunkRequest, Roundtrip) { BSONObj cmdObj = builder.obj(); - ASSERT_TRUE(cmdObj.hasField("shardVersion")); - auto request = assertGet( MoveChunkRequest::createFromCommand(NamespaceString(cmdObj["moveChunk"].String()), cmdObj)); ASSERT_EQ(kNs.ns(), request.getNss().ns()); @@ -93,7 +88,6 @@ TEST(MoveChunkRequest, EqualityOperatorSameValue) { &builder, kNs, chunkVersion, - kTestConfigServerConnectionString, kFromShard, kToShard, ChunkRange(kMin, kMax), @@ -119,7 +113,6 @@ TEST(MoveChunkRequest, EqualityOperatorDifferentValues) { &builder1, kNs, chunkVersion, - kTestConfigServerConnectionString, kFromShard, kToShard, ChunkRange(kMin, kMax), @@ -135,7 +128,6 @@ TEST(MoveChunkRequest, EqualityOperatorDifferentValues) { &builder2, kNs, chunkVersion, - kTestConfigServerConnectionString, kFromShard, kToShard, ChunkRange(BSON("Key" << 100), BSON("Key" << 200)), // Different key ranges |