[SERVER-44812] Expose the commitment of the current config Created: 22/Nov/19  Updated: 29/Oct/23  Resolved: 01/Mar/20

Status: Closed
Project: Core Server
Component/s: Replication
Affects Version/s: None
Fix Version/s: 4.3.4

Type: Task Priority: Major - P3
Reporter: Siyuan Zhou Assignee: A. Jesse Jiryu Davis
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by SERVER-46471 More detailed config commitment statu... Closed
Documented
is documented by DOCS-13460 Investigate changes in SERVER-44812: ... Closed
Related
is related to SERVER-46561 Only support getReplSetConfig.commitm... Closed
Backwards Compatibility: Fully Compatible
Sprint: Repl 2020-02-24, Repl 2020-03-09
Participants:
Linked BF Score: 28

 Description   

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.



 Comments   
Comment by Siyuan Zhou [ 03/Mar/20 ]

getReplSetConfig.commitmentStatus is only supported on primary as in SERVER-46561.

Comment by Githook User [ 01/Mar/20 ]

Author:

{'name': 'A. Jesse Jiryu Davis', 'username': 'ajdavis', 'email': 'jesse@mongodb.com'}

Message: SERVER-44812 Add getReplSetConfig.commitmentStatus
Branch: master
https://github.com/mongodb/mongo/commit/6d061b06f72bb59a9f2e3c939698cdbafbab2b8c

Comment by William Schultz (Inactive) [ 27/Feb/20 ]

We have a few TODOs marked for this ticket: 1, 2, 3

Comment by A. Jesse Jiryu Davis [ 26/Feb/20 ]

As specified in the technical design doc: "users or Atlas may run a replSetGetConfig command (not replSetReconfig) with a new field “commitmentStatus: 1” to learn the commitment status of the current config. The returned config document will include a new field “commitmentStatus: <true/false>” to indicate whether the config is committed."

Comment by Louisa Berger [ 04/Dec/19 ]

I think 3 and 4 are equally good for us, so whichever makes more sense to your team works for us.

Comment by Siyuan Zhou [ 04/Dec/19 ]

louisa.berger and john.morales, the latests design elaborated option 3 - support a new option commitmentStatus in replSetGetConfig command and return whether the config is committed in a new commitmentStatus field in the response. Which option do you prefer?

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