Details
-
Task
-
Resolution: Fixed
-
Major - P3
-
None
Description
Description
replSetGetConfig accepts a new optional boolean parameter "commitmentStatus". If it's true, then the reply contains a new parameter, which is also a boolean called "commitmentStatus". It's true if the most recent replica set config has been committed, meaning it's propagated to a majority of nodes, and the last write in the previous config is majority-committed in the new config. If the most recent config is committed, then it's permitted to do another reconfig.
Description of Linked Ticket
In case safe config takes a long time to get committed, Atlas needs to retry and be able to poll the status of the current config in order to run the next reconfig command.
Some options:
1. Run the next reconfig anyway and get a ConfigurationInProgress error if the previous isn't committed yet.
2. Add a dryRun option to reconifg, which only checks the commitment of the previous config without actually accepting the config.
3. Report in the response of replSetGetConfig if a new option is present.
4. Report the config status in replSetGetStatus.
Scope of changes
Impact to Other Docs
MVP (Work and Date)
Resources (Scope or Design Docs, Invision, etc.)
Attachments
Issue Links
- documents
-
SERVER-44812 Expose the commitment of the current config
-
- Closed
-