diff options
author | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2019-05-03 16:21:24 -0400 |
---|---|---|
committer | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2019-05-09 07:40:56 -0400 |
commit | 2791817876636c0cfd60d867f31c7a83cf3f18c1 (patch) | |
tree | 3aefcb1999cccf4cb53b2401a44857549ba8722a /src/mongo/db/logical_session_cache_factory_mongod.cpp | |
parent | 1b8a9f5dc5c3314042b55e7415a2a25045b32a94 (diff) | |
download | mongo-2791817876636c0cfd60d867f31c7a83cf3f18c1.tar.gz |
SERVER-37837 Get rid of TransactionReaper (Part 1)
This change gets rid of the TransactionReaper's usage of the
ReplicationCoordinator for checking whether it is primary or not and
makes the LogicalSessionCache joinable on shutdown.
It also removes the TransactionReaper's grouping per-shard optimization
and moves it all under SessionCollectionSharded.
Diffstat (limited to 'src/mongo/db/logical_session_cache_factory_mongod.cpp')
-rw-r--r-- | src/mongo/db/logical_session_cache_factory_mongod.cpp | 24 |
1 files changed, 4 insertions, 20 deletions
diff --git a/src/mongo/db/logical_session_cache_factory_mongod.cpp b/src/mongo/db/logical_session_cache_factory_mongod.cpp index 6610702c1ca..2d9870e258a 100644 --- a/src/mongo/db/logical_session_cache_factory_mongod.cpp +++ b/src/mongo/db/logical_session_cache_factory_mongod.cpp @@ -31,8 +31,6 @@ #include "mongo/platform/basic.h" -#include <memory> - #include "mongo/db/logical_session_cache_factory_mongod.h" #include "mongo/db/logical_session_cache_impl.h" @@ -41,14 +39,14 @@ #include "mongo/db/sessions_collection_rs.h" #include "mongo/db/sessions_collection_sharded.h" #include "mongo/db/sessions_collection_standalone.h" -#include "mongo/db/transaction_reaper.h" +#include "mongo/db/transaction_reaper_d.h" #include "mongo/stdx/memory.h" #include "mongo/util/log.h" namespace mongo { std::unique_ptr<LogicalSessionCache> makeLogicalSessionCacheD(LogicalSessionCacheServer state) { - auto liaison = stdx::make_unique<ServiceLiaisonMongod>(); + auto liaison = std::make_unique<ServiceLiaisonMongod>(); auto sessionsColl = [&]() -> std::shared_ptr<SessionsCollection> { switch (state) { @@ -65,22 +63,8 @@ std::unique_ptr<LogicalSessionCache> makeLogicalSessionCacheD(LogicalSessionCach MONGO_UNREACHABLE; }(); - auto reaper = [&]() -> std::shared_ptr<TransactionReaper> { - switch (state) { - case LogicalSessionCacheServer::kSharded: - return TransactionReaper::make(TransactionReaper::Type::kSharded, sessionsColl); - case LogicalSessionCacheServer::kReplicaSet: - return TransactionReaper::make(TransactionReaper::Type::kReplicaSet, sessionsColl); - case LogicalSessionCacheServer::kConfigServer: - case LogicalSessionCacheServer::kStandalone: - return nullptr; - } - - MONGO_UNREACHABLE; - }(); - - return stdx::make_unique<LogicalSessionCacheImpl>( - std::move(liaison), std::move(sessionsColl), std::move(reaper)); + return std::make_unique<LogicalSessionCacheImpl>( + std::move(liaison), std::move(sessionsColl), TransactionReaperD::reapSessionsOlderThan); } } // namespace mongo |