summaryrefslogtreecommitdiff
path: root/src/mongo/db/repl
diff options
context:
space:
mode:
authorKaloian Manassiev <kaloian.manassiev@mongodb.com>2017-06-23 17:35:55 -0400
committerKaloian Manassiev <kaloian.manassiev@mongodb.com>2017-06-28 09:13:53 -0400
commit81a5d9d5a67c7036ce241368c66ffa4d49bd8d37 (patch)
tree68ad9fdff2bd91ef405836aa862591efc7d69522 /src/mongo/db/repl
parent0ab7f732e0bee535383dd6dcda400999a1eee6b2 (diff)
downloadmongo-81a5d9d5a67c7036ce241368c66ffa4d49bd8d37.tar.gz
SERVER-29875 Install SessionsTransactionTable on the ServiceContext
Also hooks it with the replication subsystem and ensures the collection is created on promotion to primary.
Diffstat (limited to 'src/mongo/db/repl')
-rw-r--r--src/mongo/db/repl/SConscript41
-rw-r--r--src/mongo/db/repl/replication_coordinator_external_state_impl.cpp3
2 files changed, 24 insertions, 20 deletions
diff --git a/src/mongo/db/repl/SConscript b/src/mongo/db/repl/SConscript
index 4745ed48426..f44ca19e037 100644
--- a/src/mongo/db/repl/SConscript
+++ b/src/mongo/db/repl/SConscript
@@ -1450,37 +1450,38 @@ env.Library(
"sync_source_feedback.cpp",
],
LIBDEPS=[
- 'bgsync',
- 'drop_pending_collection_reaper',
- 'rollback_source_impl',
- 'oplog_buffer_collection',
- 'oplog_interface_remote',
- 'optime',
- 'repl_coordinator_interface',
- 'repl_coordinator_impl',
- 'repl_settings',
- 'replication_consistency_markers_impl',
- 'replication_process',
- 'sync_tail',
'$BUILD_DIR/mongo/base',
'$BUILD_DIR/mongo/client/clientdriver',
'$BUILD_DIR/mongo/db/auth/authcore',
+ '$BUILD_DIR/mongo/db/cloner',
'$BUILD_DIR/mongo/db/commands/dcommands_fcv',
- '$BUILD_DIR/mongo/db/commands/server_status',
- '$BUILD_DIR/mongo/db/logical_clock',
- '$BUILD_DIR/mongo/db/logical_time',
'$BUILD_DIR/mongo/db/commands/list_collections_filter',
- '$BUILD_DIR/mongo/rpc/client_metadata',
+ '$BUILD_DIR/mongo/db/commands/server_status',
'$BUILD_DIR/mongo/db/concurrency/lock_manager',
'$BUILD_DIR/mongo/db/curop',
+ '$BUILD_DIR/mongo/db/index_d',
'$BUILD_DIR/mongo/db/lasterror',
+ '$BUILD_DIR/mongo/db/logical_clock',
+ '$BUILD_DIR/mongo/db/logical_time',
'$BUILD_DIR/mongo/db/query/query',
+ '$BUILD_DIR/mongo/db/repair_database',
+ '$BUILD_DIR/mongo/db/repl/oplog_buffer_proxy',
'$BUILD_DIR/mongo/db/s/balancer',
'$BUILD_DIR/mongo/db/service_context',
+ '$BUILD_DIR/mongo/db/session_transactions',
'$BUILD_DIR/mongo/db/stats/counters',
- '$BUILD_DIR/mongo/db/repl/oplog_buffer_proxy',
- '$BUILD_DIR/mongo/db/cloner',
- '$BUILD_DIR/mongo/db/index_d',
- '$BUILD_DIR/mongo/db/repair_database',
+ '$BUILD_DIR/mongo/rpc/client_metadata',
+ 'bgsync',
+ 'drop_pending_collection_reaper',
+ 'oplog_buffer_collection',
+ 'oplog_interface_remote',
+ 'optime',
+ 'repl_coordinator_impl',
+ 'repl_coordinator_interface',
+ 'repl_settings',
+ 'replication_consistency_markers_impl',
+ 'replication_process',
+ 'rollback_source_impl',
+ 'sync_tail',
],
)
diff --git a/src/mongo/db/repl/replication_coordinator_external_state_impl.cpp b/src/mongo/db/repl/replication_coordinator_external_state_impl.cpp
index e92921ab55a..4d328f5f1de 100644
--- a/src/mongo/db/repl/replication_coordinator_external_state_impl.cpp
+++ b/src/mongo/db/repl/replication_coordinator_external_state_impl.cpp
@@ -74,6 +74,7 @@
#include "mongo/db/server_options.h"
#include "mongo/db/server_parameters.h"
#include "mongo/db/service_context.h"
+#include "mongo/db/session_transaction_table.h"
#include "mongo/db/storage/storage_engine.h"
#include "mongo/executor/network_connection_hook.h"
#include "mongo/executor/network_interface.h"
@@ -798,6 +799,8 @@ void ReplicationCoordinatorExternalStateImpl::_shardingOnTransitionToPrimaryHook
Grid::get(_service)->catalogCache()->onStepUp();
}
+ SessionTransactionTable::get(_service)->onStepUp(opCtx);
+
// There is a slight chance that some stale metadata might have been loaded before the latest
// optime has been recovered, so throw out everything that we have up to now
ShardingState::get(opCtx)->markCollectionsNotShardedAtStepdown();