[SERVER-62263] Synchronize changes to cluster server parameters across replica set nodes Created: 24/Dec/21  Updated: 29/Oct/23  Resolved: 18/Feb/22

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 6.0.0-rc0

Type: Task Priority: Major - P3
Reporter: Varun Ravichandran Assignee: Sara Golemon
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on SERVER-59921 Create Feature flag for Mechanism for... Closed
Backwards Compatibility: Fully Compatible
Sprint: Security 2022-02-21
Participants:

 Description   

When new values are set for a given cluster server parameter, the change is typically only received by one node. Therefore, the update needs to be communicated to all other nodes in the cluster. For replica sets, it is easiest to accomplish this by persisting the cluster parameter values to a replicated document on disk. The usual replication machinery ensures that changes to the document eventually are mirrored on secondary nodes, and a new OpObserver can observe changes to the replication oplog to update in-memory values whenever an operation is applied on the cluster parameter document. Additionally, the durable storage is necessary to ensure cluster parameters can be persisted across server restarts and upgrades.

  1. Define the ClusterParameterOpObserver class, which should derive from the general OpObserver class. Make sure that this gets registered onto the global OpObserverRegistry during node startup.
  2. Implement overrides of the onInserts, onUpdate, aboutToDelete, onDelete, onDropDatabase, onDropCollection, postRenameCollection, onImportCollection, and _onReplicationRollback functions that monitor changes that will impact cluster server parameter documents on the config.settings collection.
  3. Implement a new function that instantiates all cluster server parameters on node startup based on values persisted on the config.clusterParameters collection. If the document does not exist, it will instantiate the cluster parameter to the default value.


 Comments   
Comment by Githook User [ 18/Feb/22 ]

Author:

{'name': 'Sara Golemon', 'email': 'sara.golemon@mongodb.com', 'username': 'sgolemon'}

Message: SERVER-62263 Add ClusterServerParameterOpObserver
Branch: master
https://github.com/mongodb/mongo/commit/1295e77aec0fdd21ff430939453bbba24c77870f

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