summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Polato <paolo.polato@mongodb.com>2021-08-10 07:51:49 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-08-10 10:46:17 +0000
commit1242fd1ee165d803fde22974aa232ebaec342c0e (patch)
tree4ecf75036c657f3fc2c254935809af26c02b885c
parentb788a021e822ed30bd0f04dc972038721ba55688 (diff)
downloadmongo-1242fd1ee165d803fde22974aa232ebaec342c0e.tar.gz
SERVER-59213 Refactoring MoveChunkRequest::appendAsCommand()
-rw-r--r--src/mongo/db/s/active_migrations_registry_test.cpp1
-rw-r--r--src/mongo/db/s/balancer/migration_manager.cpp30
-rw-r--r--src/mongo/db/s/migration_chunk_cloner_source_legacy_test.cpp6
-rw-r--r--src/mongo/s/request_types/move_chunk_request.cpp13
-rw-r--r--src/mongo/s/request_types/move_chunk_request.h1
-rw-r--r--src/mongo/s/request_types/move_chunk_request_test.cpp8
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