diff options
author | Blake Oler <blake.oler@mongodb.com> | 2019-06-20 11:50:28 -0400 |
---|---|---|
committer | Blake Oler <blake.oler@mongodb.com> | 2019-06-27 17:31:09 -0400 |
commit | c11b97788fcc91288deac647ddcc11625607d256 (patch) | |
tree | 3c95e51b7ed04c7a7aa94e6ef56a30ec293e0d9e /src/mongo/s/commands/cluster_write_cmd.cpp | |
parent | d960519275aba7e6611294903cd2b5156710a73b (diff) | |
download | mongo-c11b97788fcc91288deac647ddcc11625607d256.tar.gz |
SERVER-41676 Convert TransactionRouter to use observer pattern to synchronize internal data
with external observers
Diffstat (limited to 'src/mongo/s/commands/cluster_write_cmd.cpp')
-rw-r--r-- | src/mongo/s/commands/cluster_write_cmd.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/mongo/s/commands/cluster_write_cmd.cpp b/src/mongo/s/commands/cluster_write_cmd.cpp index e3d3df7488f..a408e03f97a 100644 --- a/src/mongo/s/commands/cluster_write_cmd.cpp +++ b/src/mongo/s/commands/cluster_write_cmd.cpp @@ -215,8 +215,7 @@ bool handleWouldChangeOwningShardError(OperationContext* opCtx, auto& readConcernArgs = repl::ReadConcernArgs::get(opCtx); readConcernArgs = repl::ReadConcernArgs(repl::ReadConcernLevel::kLocalReadConcern); - auto txnRouterForShardKeyChange = - documentShardKeyUpdateUtil::startTransactionForShardKeyUpdate(opCtx); + documentShardKeyUpdateUtil::startTransactionForShardKeyUpdate(opCtx); // Clear the error details from the response object before sending the write again response->unsetErrDetails(); ClusterWriter::write(opCtx, request, &stats, response); @@ -240,8 +239,8 @@ bool handleWouldChangeOwningShardError(OperationContext* opCtx, } // Commit the transaction - auto commitResponse = documentShardKeyUpdateUtil::commitShardKeyUpdateTransaction( - opCtx, txnRouterForShardKeyChange); + auto commitResponse = + documentShardKeyUpdateUtil::commitShardKeyUpdateTransaction(opCtx); uassertStatusOK(getStatusFromCommandResult(commitResponse)); @@ -268,7 +267,7 @@ bool handleWouldChangeOwningShardError(OperationContext* opCtx, auto txnRouterForAbort = TransactionRouter::get(opCtx); if (txnRouterForAbort) - txnRouterForAbort->implicitlyAbortTransaction(opCtx, status); + txnRouterForAbort.implicitlyAbortTransaction(opCtx, status); return false; } @@ -501,7 +500,7 @@ private: if (auto txnRouter = TransactionRouter::get(opCtx)) { auto writeCmdStatus = response.toStatus(); if (!writeCmdStatus.isOK()) { - txnRouter->implicitlyAbortTransaction(opCtx, writeCmdStatus); + txnRouter.implicitlyAbortTransaction(opCtx, writeCmdStatus); } } |