diff options
author | A. Jesse Jiryu Davis <jesse@mongodb.com> | 2019-03-07 17:11:12 -0500 |
---|---|---|
committer | A. Jesse Jiryu Davis <jesse@mongodb.com> | 2019-03-21 21:22:24 -0400 |
commit | 78eaa3cf538764d5aa5a09c5997532a4c3b2bca8 (patch) | |
tree | 1b5fcc32ad4b9cc2369b9fcc7ae95be2b09da3f7 /src/mongo/db/db.cpp | |
parent | 9fa4a356cc1d89adc1edd4321117503ce90e2d4b (diff) | |
download | mongo-78eaa3cf538764d5aa5a09c5997532a4c3b2bca8.tar.gz |
SERVER-39679 Get oldest transaction time when snapshotting
Diffstat (limited to 'src/mongo/db/db.cpp')
-rw-r--r-- | src/mongo/db/db.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/mongo/db/db.cpp b/src/mongo/db/db.cpp index a3dc258684c..5df53cc0ef3 100644 --- a/src/mongo/db/db.cpp +++ b/src/mongo/db/db.cpp @@ -132,6 +132,7 @@ #include "mongo/db/storage/storage_engine_lock_file.h" #include "mongo/db/storage/storage_options.h" #include "mongo/db/system_index.h" +#include "mongo/db/transaction_participant.h" #include "mongo/db/ttl.h" #include "mongo/db/wire_version.h" #include "mongo/executor/network_connection_hook.h" @@ -522,9 +523,16 @@ ExitCode _initAndListen(int listenPort) { startFreeMonitoring(serviceContext); + auto replCoord = repl::ReplicationCoordinator::get(startupOpCtx.get()); + invariant(replCoord); + if (replCoord->isReplEnabled()) { + storageEngine->setOldestActiveTransactionTimestampCallback( + TransactionParticipant::getOldestActiveTimestamp); + } + if (serverGlobalParams.clusterRole == ClusterRole::ShardServer) { // Note: For replica sets, ShardingStateRecovery happens on transition to primary. - if (!repl::ReplicationCoordinator::get(startupOpCtx.get())->isReplEnabled()) { + if (!replCoord->isReplEnabled()) { if (ShardingState::get(startupOpCtx.get())->enabled()) { uassertStatusOK(ShardingStateRecovery::recover(startupOpCtx.get())); } @@ -553,7 +561,7 @@ ExitCode _initAndListen(int listenPort) { stdx::make_unique<LogicalTimeValidator>(keyManager)); } - repl::ReplicationCoordinator::get(startupOpCtx.get())->startup(startupOpCtx.get()); + replCoord->startup(startupOpCtx.get()); if (getReplSetMemberInStandaloneMode(serviceContext)) { log() << startupWarningsLog; log() << "** WARNING: mongod started without --replSet yet document(s) are present in " |