[DOCS-14446] Investigate changes in SERVER-55376: Reconfig can roll back committed writes in PSA sets Created: 12/May/21  Updated: 13/Nov/23  Resolved: 12/Jul/21

Status: Closed
Project: Documentation
Component/s: manual, Server
Affects Version/s: None
Fix Version/s: 5.0.0-rc0, 4.4.11, Server_Docs_20231030, Server_Docs_20231106, Server_Docs_20231105, Server_Docs_20231113

Type: Task Priority: Major - P3
Reporter: Backlog - Core Eng Program Management Team Assignee: Naomi Pentrel (Inactive)
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
backported by DOCS-14812 [SERVER][BACKPORT] [v4.4] Reconfig ca... Closed
Depends
is depended on by SERVER-56801 Update placeholder links for the reco... Closed
Documented
documents SERVER-55376 Reconfig can roll back committed writ... Closed
Duplicate
Related
related to DOCS-14598 [SERVER] Document the new eMRC=f work... Closed
is related to DOCS-14940 [SERVER][BACKPORT] [v4.4] Reconfig ca... Closed
Participants:
Days since reply: 2 years, 30 weeks, 2 days ago
Epic Link: DOCSP-9747
Story Points: 3

 Description   

Description

Downstream Change Summary

This ticket added a check to the reconfig procedure that prevents a reconfig to a PSA set that might result in rolling back committed writes. Specifically, given a reconfig to a PSA set, if the user is trying to add a new node, or if the user is modifying an existing non-voting node to make it a voter, we check to make sure the node is not electable and has priority 0 in the new config. If it doesn't, we fail the reconfig.

If the users' reconfig ends up failing because of this check, we should have a Docs page that will guide them in their next steps. The correct procedure involves two reconfigs:

First, do a reconfig to give the added/modified node votes: 1 and priority: 0
Second, do another reconfig to give the added/modified node votes: 1 and priority: 1

Both reconfigs should succeed, and the user should end up in their desired PSA config after this procedure.

Users may also use the new rs.reconfigForPSASet() function in the mongo shell, which will issue both reconfigs automatically. It takes in 3 parameters:

memberIndex: the index of the node being added/modified
cfg: the desired end config
opts: any options to run with both reconfig commands

It is important that users should only use this function if they encounter the check added in this ticket. We will link users to the Docs page in a follow-up ticket, after it has been created.

Thank you, and let me know if I can answer any questions!

In a follow-up ticket, we will link to the DOCS page

Description of Linked Ticket

  1. Consider a PSA set in config C0.
  2. We then reconfig to C1 where the "S" node has votes:0.
  3. The "S" node goes down and falls behind as the Primary accepts and commits many writes.
  4. The "S" node restarts.
  5. Now the DBA reconfigures the "S" node to have votes:1 again in C2.
  6. The "S" node gets elected with the arbiter's vote, but without all of the writes the original primary committed while "S" was down.

Scope of changes

Impact to Other Docs

MVP (Work and Date)

Resources (Scope or Design Docs, Invision, etc.)



 Comments   
Comment by Githook User [ 12/Jul/21 ]

Author:

{'name': 'Naomi Pentrel', 'email': '5212232+npentrel@users.noreply.github.com', 'username': 'npentrel'}

Message: DOCS-14446: Add rs.reconfigForPSASet()
Branch: master
https://github.com/mongodb/docs/commit/5e03dccc7ddd9cbfcbcadfbde15eaad5ea05ddec

Comment by Xuerui Fa [ 20/May/21 ]

Since SERVER-56801 is blocked on this ticket, would it be possible to prioritize creating this DOCS page? Thank you, and please feel free to reach out if there are any questions about SERVER-55376!

CC jeffrey.allen

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