summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVishnu Kaushik <vishnu.kaushik@mongodb.com>2020-10-16 14:18:16 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-10-16 15:12:19 +0000
commit69067887cb295671a21c359776e047e6e562af00 (patch)
tree6e0d8399a97448725e51b0bbd9b3ebf4d8601707
parent401d1f1a28dd94bd96de9dc733cd61184661ec15 (diff)
downloadmongo-69067887cb295671a21c359776e047e6e562af00.tar.gz
SERVER-51389 std::move initial chunks and zones, pass ChunksAndZones by value instead of by reference
-rw-r--r--src/mongo/db/s/config/configsvr_reshard_collection_cmd.cpp2
-rw-r--r--src/mongo/db/s/resharding/resharding_coordinator_service.cpp11
2 files changed, 7 insertions, 6 deletions
diff --git a/src/mongo/db/s/config/configsvr_reshard_collection_cmd.cpp b/src/mongo/db/s/config/configsvr_reshard_collection_cmd.cpp
index d24eaba115d..1f4e3fec8df 100644
--- a/src/mongo/db/s/config/configsvr_reshard_collection_cmd.cpp
+++ b/src/mongo/db/s/config/configsvr_reshard_collection_cmd.cpp
@@ -207,7 +207,7 @@ public:
auto instance = ReshardingCoordinatorService::ReshardingCoordinator::getOrCreate(
opCtx, service, coordinatorDoc.toBSON());
- instance->setInitialChunksAndZones(initialChunks, newZones);
+ instance->setInitialChunksAndZones(std::move(initialChunks), std::move(newZones));
// This promise will currently be falsely fulfilled by a call to interrupt() inside
// the ReshardingCoordinatorService. This is to enable jsTests to pass while code
diff --git a/src/mongo/db/s/resharding/resharding_coordinator_service.cpp b/src/mongo/db/s/resharding/resharding_coordinator_service.cpp
index b0d30953211..9860c00e175 100644
--- a/src/mongo/db/s/resharding/resharding_coordinator_service.cpp
+++ b/src/mongo/db/s/resharding/resharding_coordinator_service.cpp
@@ -422,7 +422,8 @@ void persistInitialStateAndCatalogUpdates(OperationContext* opCtx,
opCtx, coordinatorDoc, chunkVersion, collation, txnNumber);
// Insert new initial chunk and tag documents
- insertChunkAndTagDocsForTempNss(opCtx, initialChunks, newZones, txnNumber);
+ insertChunkAndTagDocsForTempNss(
+ opCtx, std::move(initialChunks), std::move(newZones), txnNumber);
// Commit the transaction
ShardingCatalogManager::get(opCtx)->commitTxnForConfigDocument(opCtx, txnNumber);
@@ -623,9 +624,9 @@ ExecutorFuture<void> ReshardingCoordinatorService::ReshardingCoordinator::_init(
return _initialChunksAndZonesPromise.getFuture()
.thenRunOn(**executor)
- .then([this](const ChunksAndZones& initialChunksAndZones) {
- auto initialChunks = initialChunksAndZones.initialChunks;
- auto newZones = initialChunksAndZones.newZones;
+ .then([this](ChunksAndZones initialChunksAndZones) {
+ auto initialChunks = std::move(initialChunksAndZones.initialChunks);
+ auto newZones = std::move(initialChunksAndZones.newZones);
// Create state document that will be written to disk and afterward set to the in-memory
// _coordinatorDoc
@@ -634,7 +635,7 @@ ExecutorFuture<void> ReshardingCoordinatorService::ReshardingCoordinator::_init(
auto opCtx = cc().makeOperationContext();
resharding::persistInitialStateAndCatalogUpdates(
- opCtx.get(), updatedCoordinatorDoc, initialChunks, newZones);
+ opCtx.get(), updatedCoordinatorDoc, std::move(initialChunks), std::move(newZones));
invariant(_coordinatorDoc.getState() == CoordinatorStateEnum::kInitializing);
_coordinatorDoc = updatedCoordinatorDoc;