[SERVER-62907] Vector clock components must survive CSRS non-rolling restart Created: 24/Jan/22 Updated: 29/Oct/23 Resolved: 28/Feb/22 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Sharding |
| Affects Version/s: | 5.2.0, 5.0.5, 5.1.1 |
| Fix Version/s: | 6.0.0-rc0, 5.0.7, 5.3.0-rc2 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Pierlauro Sciarelli | Assignee: | Antonio Fuschetto |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | shardingemea-qw | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||
| Operating System: | ALL | ||||||||
| Backport Requested: |
v5.3, v5.0
|
||||||||
| Steps To Reproduce: |
|
||||||||
| Sprint: | Sharding EMEA 2022-02-21, Sharding EMEA 2022-03-07 | ||||||||
| Participants: | |||||||||
| Story Points: | 5 | ||||||||
| Description |
|
The current implementation of the vector clock is resilient to step-downs and rolling restarts of the config server because at least one of its nodes is alive, keeping the correct values of each component that are then gossiped out. In case the whole config server goes down or simply gets restarted in a non-rolling fashion, the vector clock is reinitialized on the new CSRS primary with:
There are high probabilities that causal consistency would be broken in such scenario because:
|
| Comments |
| Comment by Githook User [ 01/Mar/22 ] |
|
Author: {'name': 'Antonio Fuschetto', 'email': 'antonio.fuschetto@mongodb.com', 'username': 'afuschetto'}Message: |
| Comment by Githook User [ 01/Mar/22 ] |
|
Author: {'name': 'Antonio Fuschetto', 'email': 'antonio.fuschetto@mongodb.com', 'username': 'afuschetto'}Message: |
| Comment by Githook User [ 25/Feb/22 ] |
|
Author: {'name': 'Antonio Fuschetto', 'email': 'antonio.fuschetto@mongodb.com', 'username': 'afuschetto'}Message: |