[SERVER-83421] Support cluster getClusterParameter command in embedded router Created: 17/Nov/23  Updated: 07/Feb/24

Status: In Code Review
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Major - P3
Reporter: George Wangensteen Assignee: George Wangensteen
Resolution: Unresolved Votes: 0
Labels: pm-635-milestone-2
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Service Arch
Sprint: Service Arch 2024-01-08, Service Arch 2024-01-22, Service Arch 2024-02-05, Service Arch 2024-02-19
Participants:

 Description   

Support cluster getClusterParameter command in embedded router. We can't use the mongos implementation directly because it refreshes cluster parameter values and FCV from the config server, and the uses that data to change the value of parameters in-memory. Mongod, however, changes the in-memory values based on an OpObserver for when it replicates the writes that represent the cluster-parameter changes.

The current proposed solution is to use the in-memory parameter-changing logic from the shard-role, but have the command return the values it fetches from the config servers. This means that the in-memory values of cluster parameters in the embeded router may no longer strictly lag the configsvr/cluster-wide committed values; instead, they may advance earlier, when the in-process shard-role replicates an in-progress cluster parameter change. However, this will still provide an eventually-consistent semantic, and offers the code on the router the same semantics w/r/t the in-memory values that the shard-role has.


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