[SERVER-84270] Get rid of all Grid::*initialized* methods Created: 18/Dec/23  Updated: 06/Feb/24

Status: In Progress
Project: Core Server
Component/s: Sharding
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Major - P3
Reporter: Kaloian Manassiev Assignee: Aitor Esteve Alvarado
Resolution: Unresolved Votes: 0
Labels: 8.0-Make-All-Deployments-Sharded-Clusters, 8.0-Online-Transition-RS-To-Shard
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Sprint: CAR Team 2024-01-08, CAR Team 2024-01-22, CAR Team 2024-02-05, CAR Team 2024-02-19
Participants:

 Description   

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.


Generated at Thu Feb 08 06:54:32 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.