summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Taskov <alex.taskov@mongodb.com>2020-01-18 04:21:28 +0000
committerA. Jesse Jiryu Davis <jesse@mongodb.com>2020-01-27 15:40:41 -0500
commitcfde5ef0adebbd59f2105fb2182b7d2f151526a4 (patch)
tree788fd506826b83e2f5567f4333884d77d1474aa8
parent4e52e861f63ce22a857308623b172725ae062d0e (diff)
downloadmongo-cfde5ef0adebbd59f2105fb2182b7d2f151526a4.tar.gz
SERVER-45647 Remove lsid and txnNumber from MigrationCoordinator doc
-rw-r--r--jstests/sharding/migration_coordinator_basic.js2
-rw-r--r--src/mongo/db/s/migration_coordinator.cpp18
-rw-r--r--src/mongo/db/s/migration_coordinator.h11
-rw-r--r--src/mongo/db/s/migration_coordinator_document.idl7
-rw-r--r--src/mongo/db/s/migration_source_manager.cpp7
-rw-r--r--src/mongo/db/s/migration_util.cpp22
-rw-r--r--src/mongo/db/s/migration_util.h9
7 files changed, 16 insertions, 60 deletions
diff --git a/jstests/sharding/migration_coordinator_basic.js b/jstests/sharding/migration_coordinator_basic.js
index 040e90d2407..03aaee4e2d1 100644
--- a/jstests/sharding/migration_coordinator_basic.js
+++ b/jstests/sharding/migration_coordinator_basic.js
@@ -40,8 +40,6 @@ function getCollectionUuidAndEpoch(ns) {
function assertHasMigrationCoordinatorDoc({conn, ns, uuid, epoch}) {
const query = {
- lsid: {$exists: 1},
- txnNumber: {$exists: 1},
nss: ns,
collectionUuid: uuid,
donorShardId: st.shard0.shardName,
diff --git a/src/mongo/db/s/migration_coordinator.cpp b/src/mongo/db/s/migration_coordinator.cpp
index 8d7521689da..38e2d47b5c4 100644
--- a/src/mongo/db/s/migration_coordinator.cpp
+++ b/src/mongo/db/s/migration_coordinator.cpp
@@ -45,8 +45,6 @@ MONGO_FAIL_POINT_DEFINE(disableWritingPendingRangeDeletionEntries);
namespace migrationutil {
MigrationCoordinator::MigrationCoordinator(UUID migrationId,
- LogicalSessionId lsid,
- TxnNumber txnNumber,
ShardId donorShard,
ShardId recipientShard,
NamespaceString collectionNamespace,
@@ -54,8 +52,6 @@ MigrationCoordinator::MigrationCoordinator(UUID migrationId,
ChunkRange range,
ChunkVersion preMigrationChunkVersion)
: _migrationInfo(migrationId,
- std::move(lsid),
- txnNumber,
std::move(collectionNamespace),
collectionUuid,
std::move(donorShard),
@@ -120,11 +116,8 @@ void MigrationCoordinator::_commitMigrationOnDonorAndRecipient(OperationContext*
migrationutil::persistCommitDecision(opCtx, _migrationInfo.getId());
LOG(0) << _logPrefix() << "Deleting range deletion task on recipient";
- migrationutil::deleteRangeDeletionTaskOnRecipient(opCtx,
- _migrationInfo.getRecipientShardId(),
- _migrationInfo.getId(),
- _migrationInfo.getLsid(),
- _migrationInfo.getTxnNumber());
+ migrationutil::deleteRangeDeletionTaskOnRecipient(
+ opCtx, _migrationInfo.getRecipientShardId(), _migrationInfo.getId());
LOG(0) << _logPrefix() << "Marking range deletion task on donor as ready for processing";
migrationutil::markAsReadyRangeDeletionTaskLocally(opCtx, _migrationInfo.getId());
@@ -138,11 +131,8 @@ void MigrationCoordinator::_abortMigrationOnDonorAndRecipient(OperationContext*
migrationutil::deleteRangeDeletionTaskLocally(opCtx, _migrationInfo.getId());
LOG(0) << _logPrefix() << "Marking range deletion task on recipient as ready for processing";
- migrationutil::markAsReadyRangeDeletionTaskOnRecipient(opCtx,
- _migrationInfo.getRecipientShardId(),
- _migrationInfo.getId(),
- _migrationInfo.getLsid(),
- _migrationInfo.getTxnNumber());
+ migrationutil::markAsReadyRangeDeletionTaskOnRecipient(
+ opCtx, _migrationInfo.getRecipientShardId(), _migrationInfo.getId());
}
void MigrationCoordinator::_forgetMigration(OperationContext* opCtx) {
diff --git a/src/mongo/db/s/migration_coordinator.h b/src/mongo/db/s/migration_coordinator.h
index c85c78ddc8a..7185642c01c 100644
--- a/src/mongo/db/s/migration_coordinator.h
+++ b/src/mongo/db/s/migration_coordinator.h
@@ -29,7 +29,6 @@
#pragma once
-#include "mongo/db/logical_session_id.h"
#include "mongo/db/s/collection_sharding_runtime.h"
#include "mongo/db/s/migration_coordinator_document_gen.h"
#include "mongo/s/catalog/type_chunk.h"
@@ -48,8 +47,6 @@ public:
enum class Decision { kAborted, kCommitted };
MigrationCoordinator(UUID migrationId,
- LogicalSessionId lsid,
- TxnNumber txnNumber,
ShardId donorShard,
ShardId recipientShard,
NamespaceString collectionNamespace,
@@ -67,10 +64,10 @@ public:
* Initializes persistent state required to ensure that orphaned ranges are properly handled,
* even after failover, by doing the following:
*
- * 1) Inserts a document into the local config.migrationCoordinators with the lsid, txnNumber,
- * and recipientId and waits for majority writeConcern.
- * 2) Inserts a document into the local config.rangeDeletions with the collectionUUID, range to
- * delete, and "pending: true" and waits for majority writeConcern.
+ * 1) Inserts a document into the local config.migrationCoordinators with the recipientId and
+ * waits for majority writeConcern. 2) Inserts a document into the local config.rangeDeletions
+ * with the collectionUUID, range to delete, and "pending: true" and waits for majority
+ * writeConcern.
*/
void startMigration(OperationContext* opCtx, bool waitForDelete);
diff --git a/src/mongo/db/s/migration_coordinator_document.idl b/src/mongo/db/s/migration_coordinator_document.idl
index 74814abda01..9e1310fbf79 100644
--- a/src/mongo/db/s/migration_coordinator_document.idl
+++ b/src/mongo/db/s/migration_coordinator_document.idl
@@ -37,7 +37,6 @@ imports:
- "mongo/s/sharding_types.idl"
- "mongo/s/chunk_range.idl"
- "mongo/s/chunk_version.idl"
- - "mongo/db/logical_session_id.idl"
structs:
migrationCoordinatorDocument:
@@ -49,12 +48,6 @@ structs:
type: uuid
description: "A unique identifier for the migration."
cpp_name: id
- lsid:
- type: LogicalSessionId
- description: "The sessionId to use to communicate with the recipient"
- txnNumber:
- type: TxnNumber
- description: "The txnNumber to use to communicate with the recipient"
nss:
type: namespacestring
description: "The namespace of the collection that the chunk belongs to."
diff --git a/src/mongo/db/s/migration_source_manager.cpp b/src/mongo/db/s/migration_source_manager.cpp
index 4155ef4dada..0380e137b4b 100644
--- a/src/mongo/db/s/migration_source_manager.cpp
+++ b/src/mongo/db/s/migration_source_manager.cpp
@@ -285,15 +285,8 @@ Status MigrationSourceManager::startClone() {
invariant(nullptr == std::exchange(msmForCsr(csr), this));
if (_useFCV44Protocol) {
- // TODO (SERVER-xxx): Allow re-using the same session (though different transaction
- // number) across migrations.
- auto lsid = makeLogicalSessionId(_opCtx);
- auto txnNumber = TxnNumber{0};
-
_coordinator = std::make_unique<migrationutil::MigrationCoordinator>(
migrationId,
- lsid,
- txnNumber,
_args.getFromShardId(),
_args.getToShardId(),
getNss(),
diff --git a/src/mongo/db/s/migration_util.cpp b/src/mongo/db/s/migration_util.cpp
index f6affab21bf..fc0f27d564f 100644
--- a/src/mongo/db/s/migration_util.cpp
+++ b/src/mongo/db/s/migration_util.cpp
@@ -71,11 +71,7 @@ const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority,
WriteConcernOptions::kNoTimeout);
template <typename Cmd>
-void sendToRecipient(OperationContext* opCtx,
- const ShardId& recipientId,
- const Cmd& cmd,
- const LogicalSessionId& lsid,
- const TxnNumber txnNumber) {
+void sendToRecipient(OperationContext* opCtx, const ShardId& recipientId, const Cmd& cmd) {
auto recipientShard =
uassertStatusOK(Grid::get(opCtx)->shardRegistry()->getShard(opCtx, recipientId));
@@ -85,9 +81,7 @@ void sendToRecipient(OperationContext* opCtx,
opCtx,
ReadPreferenceSetting{ReadPreference::PrimaryOnly},
"config",
- cmd.toBSON(BSON("lsid" << lsid.toBSON() << "txnNumber" << txnNumber
- << WriteConcernOptions::kWriteConcernField
- << WriteConcernOptions::Majority)),
+ cmd.toBSON(BSON(WriteConcernOptions::kWriteConcernField << WriteConcernOptions::Majority)),
Shard::RetryPolicy::kIdempotent);
uassertStatusOK(Shard::CommandResponse::getEffectiveStatus(response));
@@ -349,15 +343,13 @@ void persistAbortDecision(OperationContext* opCtx, const UUID& migrationId) {
void deleteRangeDeletionTaskOnRecipient(OperationContext* opCtx,
const ShardId& recipientId,
- const UUID& migrationId,
- const LogicalSessionId& lsid,
- const TxnNumber txnNumber) {
+ const UUID& migrationId) {
write_ops::Delete deleteOp(NamespaceString::kRangeDeletionNamespace);
write_ops::DeleteOpEntry query(BSON(RangeDeletionTask::kIdFieldName << migrationId),
false /*multi*/);
deleteOp.setDeletes({query});
- sendToRecipient(opCtx, recipientId, deleteOp, lsid, txnNumber);
+ sendToRecipient(opCtx, recipientId, deleteOp);
}
void deleteRangeDeletionTaskLocally(OperationContext* opCtx, const UUID& deletionTaskId) {
@@ -373,9 +365,7 @@ void deleteRangeDeletionTasksForCollectionLocally(OperationContext* opCtx,
void markAsReadyRangeDeletionTaskOnRecipient(OperationContext* opCtx,
const ShardId& recipientId,
- const UUID& migrationId,
- const LogicalSessionId& lsid,
- const TxnNumber txnNumber) {
+ const UUID& migrationId) {
write_ops::Update updateOp(NamespaceString::kRangeDeletionNamespace);
auto queryFilter = BSON(RangeDeletionTask::kIdFieldName << migrationId);
auto updateModification = write_ops::UpdateModification(
@@ -385,7 +375,7 @@ void markAsReadyRangeDeletionTaskOnRecipient(OperationContext* opCtx,
updateEntry.setUpsert(false);
updateOp.setUpdates({updateEntry});
- sendToRecipient(opCtx, recipientId, updateOp, lsid, txnNumber);
+ sendToRecipient(opCtx, recipientId, updateOp);
}
void markAsReadyRangeDeletionTaskLocally(OperationContext* opCtx, const UUID& migrationId) {
diff --git a/src/mongo/db/s/migration_util.h b/src/mongo/db/s/migration_util.h
index 8f99930f601..4bf07cfd40e 100644
--- a/src/mongo/db/s/migration_util.h
+++ b/src/mongo/db/s/migration_util.h
@@ -29,7 +29,6 @@
#pragma once
-#include "mongo/db/logical_session_id.h"
#include "mongo/db/repl/optime.h"
#include "mongo/db/s/migration_coordinator_document_gen.h"
#include "mongo/db/s/persistent_task_store.h"
@@ -146,9 +145,7 @@ void deleteRangeDeletionTasksForCollectionLocally(OperationContext* opCtx,
*/
void deleteRangeDeletionTaskOnRecipient(OperationContext* opCtx,
const ShardId& recipientId,
- const UUID& migrationId,
- const LogicalSessionId& lsid,
- const TxnNumber txnNumber);
+ const UUID& migrationId);
/**
* Removes the 'pending' flag from the range deletion task document with the specified id from
@@ -165,9 +162,7 @@ void markAsReadyRangeDeletionTaskLocally(OperationContext* opCtx, const UUID& mi
*/
void markAsReadyRangeDeletionTaskOnRecipient(OperationContext* opCtx,
const ShardId& recipientId,
- const UUID& migrationId,
- const LogicalSessionId& lsid,
- const TxnNumber txnNumber);
+ const UUID& migrationId);
/**
* Deletes the migration coordinator document with the specified id from