[DOCS-12253] Add a comment in "Modify Replica Set Protocol Version" to prevent users from doing faster replica set protocol version upgrade or downgrade. Created: 10/Dec/18 Updated: 30/Oct/23 Resolved: 16/Jan/19 |
|
| Status: | Closed |
| Project: | Documentation |
| Component/s: | manual, Server |
| Affects Version/s: | 3.6.6 |
| Fix Version/s: | Server_Docs_20231030 |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Suganthi Mani | Assignee: | Kay Kim (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||
| Participants: | |||||||||||||||||||||
| Days since reply: | 5 years, 4 weeks ago | ||||||||||||||||||||
| Epic Link: | DOCSP-1769 | ||||||||||||||||||||
| Story Points: | 0.5 | ||||||||||||||||||||
| Description |
DescriptionFor mongod version < 4.0, if we have below upgrade/downgrade sequence. 1) Start a replica set in pv1. 2) Downgrade to pv0. 3) Before the secondaries downgrade to pv0, the user upgrades to pv1 again. Then it can lead to failures described in In order to prevent those failures from occurring, we should add a comment in modify-replica-set-protocol-version stating that "Before user upgrades or downgrades the replica set protocol version, the user should make sure that at least one oplog entry generated from the current protocol version has replicated and applied to all secondaries. And, we can get the node's last applied oplog entry optime information from either replSetGetStatus.optimes.appliedOpTime or getLastError.lastOp. If the current protocol version is pv0, then replSetGetStatus.optimes.appliedOpTime & getLastError.lastOp will have an optime with term field ("t") as -1. If it is pv1, then the term field will have a value greater than -1". ScopeUpdate Modify Replica Set Protocol Version to call out that users must wait until the protocol version change has replicated and applied to all members of the replica set. Provide logic for testing as above. Possibly generally dissuade users from rapidly changing pv values. Note: 3.6 deprecates pv0. Apply to 3.6 and backport to 3.2 (when pv1 was introduced) |
| Comments |
| Comment by Githook User [ 16/Jan/19 ] |
|
Author: {'email': 'kay.kim@mongodb.com', 'name': 'Kay Kim'}Message: |
| Comment by Githook User [ 16/Jan/19 ] |
|
Author: {'email': 'kay.kim@mongodb.com', 'name': 'Kay Kim'}Message: |
| Comment by Githook User [ 16/Jan/19 ] |
|
Author: {'email': 'kay.kim@mongodb.com', 'name': 'Kay Kim'}Message: |
| Comment by Githook User [ 16/Jan/19 ] |
|
Author: {'email': 'kay.kim@mongodb.com', 'name': 'Kay Kim'}Message: |
| Comment by Githook User [ 16/Jan/19 ] |
|
Author: {'email': 'kay.kim@mongodb.com', 'name': 'Kay Kim'}Message: |
| Comment by Suganthi Mani [ 16/Jan/19 ] |
|
Since for pv0, rs.status().optimes.appliedOpTime returns only the timestamp of the operation, we won't be able to use rs.status().optimes.appliedOpTime.t to determine the term for that operation( see HELP-8664). So, we need to update Modify Replica Set Protocol Version doc section to instruct users to check rs.status().optimes.lastCommittedOpTime.t for mongoDB versions < 4.0. P.S: Sorry for the confusion. |
| Comment by Githook User [ 18/Dec/18 ] |
|
Author: {'email': 'kay.kim@mongodb.com', 'name': 'Kay Kim'}Message: |
| Comment by Githook User [ 18/Dec/18 ] |
|
Author: {'email': 'kay.kim@mongodb.com', 'name': 'Kay Kim'}Message: |
| Comment by Githook User [ 18/Dec/18 ] |
|
Author: {'email': 'kay.kim@mongodb.com', 'name': 'Kay Kim'}Message: |
| Comment by Githook User [ 18/Dec/18 ] |
|
Author: {'email': 'kay.kim@mongodb.com', 'name': 'Kay Kim'}Message: |
| Comment by Githook User [ 18/Dec/18 ] |
|
Author: {'email': 'kay.kim@mongodb.com', 'name': 'Kay Kim'}Message: |
| Comment by Githook User [ 18/Dec/18 ] |
|
Author: {'email': 'kay.kim@mongodb.com', 'name': 'Kay Kim'}Message: |
| Comment by Githook User [ 18/Dec/18 ] |
|
Author: {'email': 'kay.kim@mongodb.com', 'name': 'Kay Kim'}Message: |