-
Type: Task
-
Resolution: Duplicate
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Sharding
-
Catalog and Routing
-
CAR Team 2024-01-08, CAR Team 2024-01-22, CAR Team 2024-02-05, CAR Team 2024-02-19, CAR Team 2024-03-04
-
3
Currently, the logic around the state of a cluster node, its recovery and initialisation is scattered across a multitude of components:
- ShardingState
- Grid's initialisation-related methods
- ReplicaSetEndpointShardingState
This is difficult to maintain and doesn't offer a clear contract around the transition of a node and what services are available at what time.
Because of this we should consolidate all methods related to the initialisation of the sharding subsystem and its services to be under ShardingState - because this is the one source of truth that's also driven by addShard.
This ticket is about getting rid of all the Grid::initialized and substituting them with the presence of ClusterRole::Router on the sharding state, which should always be present, regardless of whether the port is opened or not.
- duplicates
-
SERVER-89417 Clean-up the sharding bootstrap and initialization
- Backlog