diff options
author | Randolph Tan <randolph@10gen.com> | 2018-08-13 13:57:57 -0400 |
---|---|---|
committer | Randolph Tan <randolph@10gen.com> | 2018-08-13 13:57:57 -0400 |
commit | 71df8736a95df0738470e46c98fa8199abb23b4c (patch) | |
tree | b6f6dd24608881b20b1e2e812810fbf3f43cc83f | |
parent | e635f4e9552ed3362399850bd993518e7e87b2c6 (diff) | |
download | mongo-71df8736a95df0738470e46c98fa8199abb23b4c.tar.gz |
SERVER-36594 Rename RouterTransactionState to TransactionRouter
-rw-r--r-- | src/mongo/s/commands/strategy.cpp | 8 | ||||
-rw-r--r-- | src/mongo/s/sharding_task_executor.cpp | 14 | ||||
-rw-r--r-- | src/mongo/s/transaction/SConscript | 6 | ||||
-rw-r--r-- | src/mongo/s/transaction/transaction_router.cpp (renamed from src/mongo/s/transaction/router_transaction_state.cpp) | 44 | ||||
-rw-r--r-- | src/mongo/s/transaction/transaction_router.h (renamed from src/mongo/s/transaction/router_transaction_state.h) | 6 | ||||
-rw-r--r-- | src/mongo/s/transaction/transaction_router_test.cpp (renamed from src/mongo/s/transaction/router_transaction_state_test.cpp) | 62 |
6 files changed, 70 insertions, 70 deletions
diff --git a/src/mongo/s/commands/strategy.cpp b/src/mongo/s/commands/strategy.cpp index 7dcb969c914..e10777fcde2 100644 --- a/src/mongo/s/commands/strategy.cpp +++ b/src/mongo/s/commands/strategy.cpp @@ -74,7 +74,7 @@ #include "mongo/s/query/cluster_cursor_manager.h" #include "mongo/s/query/cluster_find.h" #include "mongo/s/stale_exception.h" -#include "mongo/s/transaction/router_transaction_state.h" +#include "mongo/s/transaction/transaction_router.h" #include "mongo/util/fail_point_service.h" #include "mongo/util/log.h" #include "mongo/util/mongoutils/str.h" @@ -349,8 +349,8 @@ void runCommand(OperationContext* opCtx, if (osi->getAutocommit()) { scopedSession.emplace(opCtx); - auto routerSession = RouterTransactionState::get(opCtx); - invariant(routerSession); + auto txnRouter = TransactionRouter::get(opCtx); + invariant(txnRouter); auto txnNumber = opCtx->getTxnNumber(); invariant(txnNumber); @@ -358,7 +358,7 @@ void runCommand(OperationContext* opCtx, auto startTxnSetting = osi->getStartTransaction(); bool startTransaction = startTxnSetting ? *startTxnSetting : false; - routerSession->beginOrContinueTxn(opCtx, *txnNumber, startTransaction); + txnRouter->beginOrContinueTxn(opCtx, *txnNumber, startTransaction); } } diff --git a/src/mongo/s/sharding_task_executor.cpp b/src/mongo/s/sharding_task_executor.cpp index 0b0bc8ae369..03cc19b517f 100644 --- a/src/mongo/s/sharding_task_executor.cpp +++ b/src/mongo/s/sharding_task_executor.cpp @@ -44,7 +44,7 @@ #include "mongo/s/cluster_last_error_info.h" #include "mongo/s/grid.h" #include "mongo/s/is_mongos.h" -#include "mongo/s/transaction/router_transaction_state.h" +#include "mongo/s/transaction/transaction_router.h" #include "mongo/util/log.h" #include "mongo/util/scopeguard.h" @@ -136,8 +136,8 @@ StatusWith<TaskExecutor::CallbackHandle> ShardingTaskExecutor::scheduleRemoteCom newRequest->cmdObj = bob.obj(); } - auto routerSession = RouterTransactionState::get(request.opCtx); - if (routerSession) { + auto txnRouter = TransactionRouter::get(request.opCtx); + if (txnRouter) { auto shard = Grid::get(request.opCtx)->shardRegistry()->getShardForHostNoReload(request.target); @@ -151,7 +151,7 @@ StatusWith<TaskExecutor::CallbackHandle> ShardingTaskExecutor::scheduleRemoteCom newRequest.emplace(request); } - auto& participant = routerSession->getOrCreateParticipant(shard->getId()); + auto& participant = txnRouter->getOrCreateParticipant(shard->getId()); newRequest->cmdObj = participant.attachTxnFieldsIfNeeded(newRequest->cmdObj); } @@ -160,7 +160,7 @@ StatusWith<TaskExecutor::CallbackHandle> ShardingTaskExecutor::scheduleRemoteCom auto clusterGLE = ClusterLastErrorInfo::get(request.opCtx->getClient()); auto shardingCb = - [ timeTracker, clusterGLE, cb, grid = Grid::get(request.opCtx), routerSession ]( + [ timeTracker, clusterGLE, cb, grid = Grid::get(request.opCtx), txnRouter ]( const TaskExecutor::RemoteCommandCallbackArgs& args) { ON_BLOCK_EXIT([&cb, &args]() { cb(args); }); @@ -168,9 +168,9 @@ StatusWith<TaskExecutor::CallbackHandle> ShardingTaskExecutor::scheduleRemoteCom auto shard = grid->shardRegistry()->getShardForHostNoReload(args.request.target); if (!shard) { LOG(1) << "Could not find shard containing host: " << args.request.target.toString(); - } else if (routerSession) { + } else if (txnRouter) { // TODO: SERVER-35707 only mark as sent for non-network error? - auto& participant = routerSession->getOrCreateParticipant(shard->getId()); + auto& participant = txnRouter->getOrCreateParticipant(shard->getId()); participant.markAsCommandSent(); } diff --git a/src/mongo/s/transaction/SConscript b/src/mongo/s/transaction/SConscript index 52fcb15a6f8..c1e94b1f366 100644 --- a/src/mongo/s/transaction/SConscript +++ b/src/mongo/s/transaction/SConscript @@ -7,7 +7,7 @@ env = env.Clone() env.Library( target='router_session', source=[ - 'router_transaction_state.cpp', + 'transaction_router.cpp', ], LIBDEPS=[ '$BUILD_DIR/mongo/db/logical_session_id', @@ -17,9 +17,9 @@ env.Library( ) env.CppUnitTest( - target='router_transaction_test', + target='transaction_router_test', source=[ - 'router_transaction_state_test.cpp', + 'transaction_router_test.cpp', ], LIBDEPS=[ '$BUILD_DIR/mongo/s/sharding_router_test_fixture', diff --git a/src/mongo/s/transaction/router_transaction_state.cpp b/src/mongo/s/transaction/transaction_router.cpp index 8b195ce834f..b466633741c 100644 --- a/src/mongo/s/transaction/router_transaction_state.cpp +++ b/src/mongo/s/transaction/transaction_router.cpp @@ -30,7 +30,7 @@ #include "mongo/platform/basic.h" -#include "mongo/s/transaction/router_transaction_state.h" +#include "mongo/s/transaction/transaction_router.h" #include "mongo/db/logical_session_id.h" #include "mongo/db/repl/read_concern_args.h" @@ -48,7 +48,7 @@ const char kStartTransactionField[] = "startTransaction"; class RouterSessionCatalog { public: - std::shared_ptr<RouterTransactionState> checkoutSessionState(OperationContext* opCtx); + std::shared_ptr<TransactionRouter> checkoutSessionState(OperationContext* opCtx); void checkInSessionState(const LogicalSessionId& sessionId); static RouterSessionCatalog* get(ServiceContext* service); @@ -57,16 +57,16 @@ public: private: stdx::mutex _mutex; stdx::unordered_map<LogicalSessionId, - std::shared_ptr<RouterTransactionState>, + std::shared_ptr<TransactionRouter>, LogicalSessionIdHash> _catalog; }; const auto getRouterSessionCatalog = ServiceContext::declareDecoration<RouterSessionCatalog>(); const auto getRouterSessionRuntimeState = - OperationContext::declareDecoration<std::shared_ptr<RouterTransactionState>>(); + OperationContext::declareDecoration<std::shared_ptr<TransactionRouter>>(); -std::shared_ptr<RouterTransactionState> RouterSessionCatalog::checkoutSessionState( +std::shared_ptr<TransactionRouter> RouterSessionCatalog::checkoutSessionState( OperationContext* opCtx) { auto logicalSessionId = opCtx->getLogicalSessionId(); invariant(logicalSessionId); @@ -82,7 +82,7 @@ std::shared_ptr<RouterTransactionState> RouterSessionCatalog::checkoutSessionSta return iter->second; } - auto newRuntimeState = std::make_shared<RouterTransactionState>(*logicalSessionId); + auto newRuntimeState = std::make_shared<TransactionRouter>(*logicalSessionId); newRuntimeState->checkOut(); _catalog.insert(std::make_pair(*logicalSessionId, newRuntimeState)); return newRuntimeState; @@ -131,12 +131,12 @@ void appendReadConcernForTxn(BSONObjBuilder* bob, repl::ReadConcernArgs readConc } // unnamed namespace -RouterTransactionState::Participant::Participant(bool isCoordinator, +TransactionRouter::Participant::Participant(bool isCoordinator, TxnNumber txnNumber, repl::ReadConcernArgs readConcernArgs) : _isCoordinator(isCoordinator), _txnNumber(txnNumber), _readConcernArgs(readConcernArgs) {} -BSONObj RouterTransactionState::Participant::attachTxnFieldsIfNeeded(BSONObj cmd) { +BSONObj TransactionRouter::Participant::attachTxnFieldsIfNeeded(BSONObj cmd) { auto isTxnCmd = isTransactionCommand(cmd); // check first before moving cmd. BSONObjBuilder newCmd(std::move(cmd)); @@ -163,21 +163,21 @@ BSONObj RouterTransactionState::Participant::attachTxnFieldsIfNeeded(BSONObj cmd return newCmd.obj(); } -RouterTransactionState::Participant::State RouterTransactionState::Participant::getState() { +TransactionRouter::Participant::State TransactionRouter::Participant::getState() { return _state; } -bool RouterTransactionState::Participant::isCoordinator() { +bool TransactionRouter::Participant::isCoordinator() { return _isCoordinator; } -void RouterTransactionState::Participant::markAsCommandSent() { +void TransactionRouter::Participant::markAsCommandSent() { if (_state == State::kMustStart) { _state = State::kStarted; } } -RouterTransactionState* RouterTransactionState::get(OperationContext* opCtx) { +TransactionRouter* TransactionRouter::get(OperationContext* opCtx) { auto& opCtxSession = getRouterSessionRuntimeState(opCtx); if (!opCtxSession) { return nullptr; @@ -186,26 +186,26 @@ RouterTransactionState* RouterTransactionState::get(OperationContext* opCtx) { return opCtxSession.get(); } -RouterTransactionState::RouterTransactionState(LogicalSessionId sessionId) +TransactionRouter::TransactionRouter(LogicalSessionId sessionId) : _sessionId(std::move(sessionId)) {} -void RouterTransactionState::checkIn() { +void TransactionRouter::checkIn() { _isCheckedOut = false; } -void RouterTransactionState::checkOut() { +void TransactionRouter::checkOut() { _isCheckedOut = true; } -bool RouterTransactionState::isCheckedOut() { +bool TransactionRouter::isCheckedOut() { return _isCheckedOut; } -boost::optional<ShardId> RouterTransactionState::getCoordinatorId() const { +boost::optional<ShardId> TransactionRouter::getCoordinatorId() const { return _coordinatorId; } -RouterTransactionState::Participant& RouterTransactionState::getOrCreateParticipant( +TransactionRouter::Participant& TransactionRouter::getOrCreateParticipant( const ShardId& shard) { auto iter = _participants.find(shard.toString()); @@ -225,16 +225,16 @@ RouterTransactionState::Participant& RouterTransactionState::getOrCreateParticip auto resultPair = _participants.try_emplace( shard.toString(), - RouterTransactionState::Participant(isFirstParticipant, _txnNumber, _readConcernArgs)); + TransactionRouter::Participant(isFirstParticipant, _txnNumber, _readConcernArgs)); return resultPair.first->second; } -const LogicalSessionId& RouterTransactionState::getSessionId() const { +const LogicalSessionId& TransactionRouter::getSessionId() const { return _sessionId; } -void RouterTransactionState::beginOrContinueTxn(OperationContext* opCtx, +void TransactionRouter::beginOrContinueTxn(OperationContext* opCtx, TxnNumber txnNumber, bool startTransaction) { invariant(_isCheckedOut); @@ -299,7 +299,7 @@ ScopedRouterSession::ScopedRouterSession(OperationContext* opCtx) : _opCtx(opCtx } ScopedRouterSession::~ScopedRouterSession() { - auto opCtxSession = RouterTransactionState::get(_opCtx); + auto opCtxSession = TransactionRouter::get(_opCtx); invariant(opCtxSession); RouterSessionCatalog::get(_opCtx)->checkInSessionState(opCtxSession->getSessionId()); } diff --git a/src/mongo/s/transaction/router_transaction_state.h b/src/mongo/s/transaction/transaction_router.h index 878de1f3ceb..c76df30db62 100644 --- a/src/mongo/s/transaction/router_transaction_state.h +++ b/src/mongo/s/transaction/transaction_router.h @@ -44,7 +44,7 @@ namespace mongo { /** * Keeps track of the transaction state. A session is in use when it is being used by a request. */ -class RouterTransactionState { +class TransactionRouter { public: /** * Represents a shard participant in a distributed transaction. Lives only for the duration of @@ -88,7 +88,7 @@ public: const repl::ReadConcernArgs _readConcernArgs; }; - RouterTransactionState(LogicalSessionId sessionId); + TransactionRouter(LogicalSessionId sessionId); /** * Starts a fresh transaction in this session. Also cleans up the previous transaction state. @@ -113,7 +113,7 @@ public: * Extract the runtimne state attached to the operation context. Returns nullptr if none is * attached. */ - static RouterTransactionState* get(OperationContext* opCtx); + static TransactionRouter* get(OperationContext* opCtx); private: const LogicalSessionId _sessionId; diff --git a/src/mongo/s/transaction/router_transaction_state_test.cpp b/src/mongo/s/transaction/transaction_router_test.cpp index 2f13aba3786..82170c832d3 100644 --- a/src/mongo/s/transaction/router_transaction_state_test.cpp +++ b/src/mongo/s/transaction/transaction_router_test.cpp @@ -29,14 +29,14 @@ #include "mongo/platform/basic.h" #include "mongo/s/sharding_router_test_fixture.h" -#include "mongo/s/transaction/router_transaction_state.h" +#include "mongo/s/transaction/transaction_router.h" #include "mongo/unittest/death_test.h" #include "mongo/unittest/unittest.h" namespace mongo { namespace { -class RouterTransactionStateTest : public ShardingTestFixture { +class TransactionRouterTest : public ShardingTestFixture { protected: void setUp() { repl::ReadConcernArgs::get(operationContext()) = @@ -44,10 +44,10 @@ protected: } }; -TEST_F(RouterTransactionStateTest, BasicStartTxn) { +TEST_F(TransactionRouterTest, BasicStartTxn) { TxnNumber txnNum{3}; - RouterTransactionState sessionState({}); + TransactionRouter sessionState({}); sessionState.checkOut(); sessionState.beginOrContinueTxn(operationContext(), txnNum, true); @@ -98,20 +98,20 @@ TEST_F(RouterTransactionStateTest, BasicStartTxn) { } } -TEST_F(RouterTransactionStateTest, CannotContiueTxnWithoutStarting) { +TEST_F(TransactionRouterTest, CannotContiueTxnWithoutStarting) { TxnNumber txnNum{3}; - RouterTransactionState sessionState({}); + TransactionRouter sessionState({}); sessionState.checkOut(); ASSERT_THROWS_CODE(sessionState.beginOrContinueTxn(operationContext(), txnNum, false), AssertionException, ErrorCodes::NoSuchTransaction); } -TEST_F(RouterTransactionStateTest, NewParticipantMustAttachTxnAndReadConcern) { +TEST_F(TransactionRouterTest, NewParticipantMustAttachTxnAndReadConcern) { TxnNumber txnNum{3}; - RouterTransactionState sessionState({}); + TransactionRouter sessionState({}); sessionState.checkOut(); sessionState.beginOrContinueTxn(operationContext(), txnNum, true); @@ -189,10 +189,10 @@ TEST_F(RouterTransactionStateTest, NewParticipantMustAttachTxnAndReadConcern) { } } -TEST_F(RouterTransactionStateTest, StartingNewTxnShouldClearState) { +TEST_F(TransactionRouterTest, StartingNewTxnShouldClearState) { TxnNumber txnNum{3}; - RouterTransactionState sessionState({}); + TransactionRouter sessionState({}); sessionState.checkOut(); sessionState.beginOrContinueTxn(operationContext(), txnNum, true); @@ -239,10 +239,10 @@ TEST_F(RouterTransactionStateTest, StartingNewTxnShouldClearState) { } } -TEST_F(RouterTransactionStateTest, FirstParticipantIsCoordinator) { +TEST_F(TransactionRouterTest, FirstParticipantIsCoordinator) { TxnNumber txnNum{3}; - RouterTransactionState sessionState({}); + TransactionRouter sessionState({}); sessionState.checkOut(); sessionState.beginOrContinueTxn(operationContext(), txnNum, true); @@ -279,10 +279,10 @@ TEST_F(RouterTransactionStateTest, FirstParticipantIsCoordinator) { } } -TEST_F(RouterTransactionStateTest, DoesNotAttachTxnNumIfAlreadyThere) { +TEST_F(TransactionRouterTest, DoesNotAttachTxnNumIfAlreadyThere) { TxnNumber txnNum{3}; - RouterTransactionState sessionState({}); + TransactionRouter sessionState({}); sessionState.checkOut(); sessionState.beginOrContinueTxn(operationContext(), txnNum, true); @@ -309,10 +309,10 @@ TEST_F(RouterTransactionStateTest, DoesNotAttachTxnNumIfAlreadyThere) { ASSERT_BSONOBJ_EQ(expectedNewObj, newCmd); } -DEATH_TEST_F(RouterTransactionStateTest, CrashesIfCmdHasDifferentTxnNumber, "invariant") { +DEATH_TEST_F(TransactionRouterTest, CrashesIfCmdHasDifferentTxnNumber, "invariant") { TxnNumber txnNum{3}; - RouterTransactionState sessionState({}); + TransactionRouter sessionState({}); sessionState.checkOut(); sessionState.beginOrContinueTxn(operationContext(), txnNum, true); @@ -324,10 +324,10 @@ DEATH_TEST_F(RouterTransactionStateTest, CrashesIfCmdHasDifferentTxnNumber, "inv << TxnNumber(10))); } -TEST_F(RouterTransactionStateTest, AttachTxnValidatesReadConcernIfAlreadyOnCmd) { +TEST_F(TransactionRouterTest, AttachTxnValidatesReadConcernIfAlreadyOnCmd) { TxnNumber txnNum{3}; - RouterTransactionState sessionState({}); + TransactionRouter sessionState({}); sessionState.checkOut(); sessionState.beginOrContinueTxn(operationContext(), txnNum, true); @@ -357,10 +357,10 @@ TEST_F(RouterTransactionStateTest, AttachTxnValidatesReadConcernIfAlreadyOnCmd) } } -TEST_F(RouterTransactionStateTest, CannotSpecifyReadConcernAfterFirstStatement) { +TEST_F(TransactionRouterTest, CannotSpecifyReadConcernAfterFirstStatement) { TxnNumber txnNum{3}; - RouterTransactionState sessionState({}); + TransactionRouter sessionState({}); sessionState.checkOut(); sessionState.beginOrContinueTxn(operationContext(), txnNum, true /* startTransaction */); @@ -370,11 +370,11 @@ TEST_F(RouterTransactionStateTest, CannotSpecifyReadConcernAfterFirstStatement) ErrorCodes::InvalidOptions); } -TEST_F(RouterTransactionStateTest, UpconvertToSnapshotIfNoReadConcernLevelGiven) { +TEST_F(TransactionRouterTest, UpconvertToSnapshotIfNoReadConcernLevelGiven) { repl::ReadConcernArgs::get(operationContext()) = repl::ReadConcernArgs(); TxnNumber txnNum{3}; - RouterTransactionState sessionState({}); + TransactionRouter sessionState({}); sessionState.checkOut(); sessionState.beginOrContinueTxn(operationContext(), txnNum, true /* startTransaction */); @@ -399,12 +399,12 @@ TEST_F(RouterTransactionStateTest, UpconvertToSnapshotIfNoReadConcernLevelGiven) ASSERT_BSONOBJ_EQ(expectedNewObj, newCmd); } -TEST_F(RouterTransactionStateTest, UpconvertToSnapshotIfNoReadConcernLevelButHasAfterClusterTime) { +TEST_F(TransactionRouterTest, UpconvertToSnapshotIfNoReadConcernLevelButHasAfterClusterTime) { repl::ReadConcernArgs::get(operationContext()) = repl::ReadConcernArgs(LogicalTime(Timestamp(10, 1)), boost::none); TxnNumber txnNum{3}; - RouterTransactionState sessionState({}); + TransactionRouter sessionState({}); sessionState.checkOut(); sessionState.beginOrContinueTxn(operationContext(), txnNum, true /* startTransaction */); @@ -433,7 +433,7 @@ TEST_F(RouterTransactionStateTest, UpconvertToSnapshotIfNoReadConcernLevelButHas ASSERT_BSONOBJ_EQ(expectedNewObj, newCmd); } -TEST_F(RouterTransactionStateTest, CannotUpconvertIfLevelOtherThanSnapshotWasGiven) { +TEST_F(TransactionRouterTest, CannotUpconvertIfLevelOtherThanSnapshotWasGiven) { auto readConcernLevels = {repl::ReadConcernLevel::kLocalReadConcern, repl::ReadConcernLevel::kMajorityReadConcern, repl::ReadConcernLevel::kLinearizableReadConcern, @@ -443,7 +443,7 @@ TEST_F(RouterTransactionStateTest, CannotUpconvertIfLevelOtherThanSnapshotWasGiv repl::ReadConcernArgs::get(operationContext()) = repl::ReadConcernArgs(readConcernLevel); TxnNumber txnNum{3}; - RouterTransactionState sessionState({}); + TransactionRouter sessionState({}); sessionState.checkOut(); ASSERT_THROWS_CODE(sessionState.beginOrContinueTxn( operationContext(), txnNum, true /* startTransaction */), @@ -452,7 +452,7 @@ TEST_F(RouterTransactionStateTest, CannotUpconvertIfLevelOtherThanSnapshotWasGiv } } -TEST_F(RouterTransactionStateTest, +TEST_F(TransactionRouterTest, CannotUpconvertIfLevelOtherThanSnapshotWasGivenWithAfterClusterTime) { auto readConcernLevels = {repl::ReadConcernLevel::kLocalReadConcern, repl::ReadConcernLevel::kMajorityReadConcern, @@ -464,7 +464,7 @@ TEST_F(RouterTransactionStateTest, repl::ReadConcernArgs(LogicalTime(Timestamp(10, 1)), readConcernLevel); TxnNumber txnNum{3}; - RouterTransactionState sessionState({}); + TransactionRouter sessionState({}); sessionState.checkOut(); ASSERT_THROWS_CODE(sessionState.beginOrContinueTxn( operationContext(), txnNum, true /* startTransaction */), @@ -473,7 +473,7 @@ TEST_F(RouterTransactionStateTest, } } -TEST_F(RouterTransactionStateTest, CannotUpconvertWithAfterOpTime) { +TEST_F(TransactionRouterTest, CannotUpconvertWithAfterOpTime) { auto readConcernLevels = {repl::ReadConcernLevel::kLocalReadConcern, repl::ReadConcernLevel::kMajorityReadConcern, repl::ReadConcernLevel::kLinearizableReadConcern, @@ -484,7 +484,7 @@ TEST_F(RouterTransactionStateTest, CannotUpconvertWithAfterOpTime) { repl::ReadConcernArgs(repl::OpTime(Timestamp(10, 1), 2), readConcernLevel); TxnNumber txnNum{3}; - RouterTransactionState sessionState({}); + TransactionRouter sessionState({}); sessionState.checkOut(); ASSERT_THROWS_CODE(sessionState.beginOrContinueTxn( operationContext(), txnNum, true /* startTransaction */), @@ -498,7 +498,7 @@ TEST_F(RouterTransactionStateTest, CannotUpconvertWithAfterOpTime) { { TxnNumber txnNum{3}; - RouterTransactionState sessionState({}); + TransactionRouter sessionState({}); sessionState.checkOut(); ASSERT_THROWS_CODE(sessionState.beginOrContinueTxn( operationContext(), txnNum, true /* startTransaction */), |