summaryrefslogtreecommitdiff
path: root/src/mongo/s/sharding_initialization.cpp
diff options
context:
space:
mode:
authorJoanna Huang <joannahuang@Joannas-MacBook-Pro.local>2017-08-01 13:46:41 -0400
committerJoanna Huang <joannahuang@Joannas-MacBook-Pro.local>2017-08-09 10:02:15 -0400
commit373e543253801f53dfc881f46f6346c96f43e70d (patch)
treee7040d4a7ffd7b346b5b2eba1befdb7a1b4d70e2 /src/mongo/s/sharding_initialization.cpp
parent041f96f0d1b8a153f76bd86b3d394961fa09b716 (diff)
downloadmongo-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.cpp11
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();