Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-62263

Synchronize changes to cluster server parameters across replica set nodes

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 6.0.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None
    • Fully Compatible
    • Security 2022-02-21

      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.

            Assignee:
            sara.golemon@mongodb.com Sara Golemon
            Reporter:
            varun.ravichandran@mongodb.com Varun Ravichandran
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: