diff options
author | Alex Taskov <alex.taskov@mongodb.com> | 2020-02-21 16:26:45 -0500 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-02-21 23:09:49 +0000 |
commit | 616564d1a5ea7217aa8b1e7f4c6d28800f0b65c9 (patch) | |
tree | ac5703336b02d40e83f7b14c954b41f6d3ceb1b1 /src/mongo/db/s/migration_util.cpp | |
parent | d6c1d5f25f895cace27e2b165a1bee9e1865a2fd (diff) | |
download | mongo-616564d1a5ea7217aa8b1e7f4c6d28800f0b65c9.tar.gz |
SERVER-45952 moveChunk command should re-use lsid and use txnNumber that increments by two for each migration
Diffstat (limited to 'src/mongo/db/s/migration_util.cpp')
-rw-r--r-- | src/mongo/db/s/migration_util.cpp | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/src/mongo/db/s/migration_util.cpp b/src/mongo/db/s/migration_util.cpp index 75b0c8a24c2..593e660ff26 100644 --- a/src/mongo/db/s/migration_util.cpp +++ b/src/mongo/db/s/migration_util.cpp @@ -611,7 +611,7 @@ void markAsReadyRangeDeletionTaskOnRecipient(OperationContext* opCtx, void advanceTransactionOnRecipient(OperationContext* opCtx, const ShardId& recipientId, const LogicalSessionId& lsid, - TxnNumber txnNumber) { + TxnNumber currentTxnNumber) { write_ops::Update updateOp(NamespaceString::kServerConfigurationNamespace); auto queryFilter = BSON("_id" << "migrationCoordinatorStats"); @@ -622,9 +622,9 @@ void advanceTransactionOnRecipient(OperationContext* opCtx, updateEntry.setUpsert(true); updateOp.setUpdates({updateEntry}); - auto passthroughFields = - BSON(WriteConcernOptions::kWriteConcernField << WriteConcernOptions::Majority << "lsid" - << lsid.toBSON() << "txnNumber" << txnNumber); + auto passthroughFields = BSON(WriteConcernOptions::kWriteConcernField + << WriteConcernOptions::Majority << "lsid" << lsid.toBSON() + << "txnNumber" << currentTxnNumber + 1); sendToRecipient(opCtx, recipientId, updateOp, passthroughFields); } @@ -770,16 +770,7 @@ void resumeMigrationCoordinationsOnStepUp(ServiceContext* serviceContext) { LOGV2(22039, "Recovering migration {doc}", "doc"_attr = doc.toBSON()); // Create a MigrationCoordinator to complete the coordination. - MigrationCoordinator coordinator(doc.getId(), - doc.getMigrationSessionId(), - doc.getLsid(), - doc.getDonorShardId(), - doc.getRecipientShardId(), - doc.getNss(), - doc.getCollectionUuid(), - doc.getRange(), - doc.getPreMigrationChunkVersion(), - false /* waitForDelete */); + MigrationCoordinator coordinator(doc); if (doc.getDecision()) { // The decision is already known. |