diff options
author | Joanna Huang <joannahuang@Joannas-MacBook-Pro.local> | 2017-08-01 13:46:41 -0400 |
---|---|---|
committer | Joanna Huang <joannahuang@Joannas-MacBook-Pro.local> | 2017-08-09 10:02:15 -0400 |
commit | 373e543253801f53dfc881f46f6346c96f43e70d (patch) | |
tree | e7040d4a7ffd7b346b5b2eba1befdb7a1b4d70e2 /src/mongo/s/sharding_initialization.cpp | |
parent | 041f96f0d1b8a153f76bd86b3d394961fa09b716 (diff) | |
download | mongo-373e543253801f53dfc881f46f6346c96f43e70d.tar.gz |
SERVER-30443 Create PeriodicBalancerSettingsRefresher on the ServiceContext
Diffstat (limited to 'src/mongo/s/sharding_initialization.cpp')
-rw-r--r-- | src/mongo/s/sharding_initialization.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/mongo/s/sharding_initialization.cpp b/src/mongo/s/sharding_initialization.cpp index 49931ed353a..60fcd383df4 100644 --- a/src/mongo/s/sharding_initialization.cpp +++ b/src/mongo/s/sharding_initialization.cpp @@ -65,6 +65,7 @@ #include "mongo/s/client/sharding_network_connection_hook.h" #include "mongo/s/cluster_identity_loader.h" #include "mongo/s/grid.h" +#include "mongo/s/periodic_balancer_settings_refresher.h" #include "mongo/s/query/cluster_cursor_manager.h" #include "mongo/stdx/memory.h" #include "mongo/util/exit.h" @@ -225,6 +226,16 @@ Status initializeGlobalShardingState(OperationContext* opCtx, if (serverGlobalParams.clusterRole == ClusterRole::ConfigServer && replCoord->getMemberState().primary()) { LogicalTimeValidator::get(opCtx)->enableKeyGenerator(opCtx, true); + } else if (serverGlobalParams.clusterRole == ClusterRole::ShardServer) { + // Determine primary/secondary/standalone state in order to properly set up the refresher. + bool isReplSet = + replCoord->getReplicationMode() == repl::ReplicationCoordinator::modeReplSet; + bool isStandaloneOrPrimary = + !isReplSet || (repl::ReplicationCoordinator::get(opCtx)->getMemberState() == + repl::MemberState::RS_PRIMARY); + + PeriodicBalancerSettingsRefresher::create(opCtx->getServiceContext(), + isStandaloneOrPrimary); } return Status::OK(); |