-
Type: Improvement
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Catalog and Routing
-
1
Today, RouterServer is a role part of all nodes in a sharded cluster. The only possible combinations are:
{ ShardServer, RouterServer } => Shard { ShardServer, ConfigServer, RouterServer } => Config / Config-Shard { RouterServer } => MongoS
With that, there are a lot of outdated calls in the codebase that do not rely that a node, part of a sharded cluster, has always a RouterServer. In the codebase this is checked as `serverGlobalParams.clusterRole.has(ClusterRole::RouterServer)`.
It is important to point out that checking for `serverGlobalParams.clusterRole.hasExclusively(ClusterRole::RouterServer)` has a different meaning, as we are asking if that node is a MongoS.
Goal
We need to either remove RouterServer checks or change them to check if we are in a sharded cluster.
References
Estimation
- User impact: Improvement.
- Raw Estimation (man-day): 2
- depends on
-
SERVER-85770 Enable internal routing capabilities by default
- Closed