[SERVER-85703] Use min(lastDurable, lastApplied) to wait for non-majority write concerns with j=true Created: 25/Jan/24 Updated: 06/Feb/24 |
|
| Status: | In Progress |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Wenbin Zhu | Assignee: | Kishore Devireddy |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | PM-3489-Milestone-LastWrittenOpTime-CP, PM-3489-perf-testing-required | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Assigned Teams: |
Replication
|
||||||||
| Sprint: | Repl 2024-02-19 | ||||||||
| Participants: | |||||||||
| Description |
|
For non-majority write concerns (with a number or tag), we are going to preserve the read-your-write assumption that customers may rely on. Non-majority write concern waits for the specified set of nodes to have their lastDurable (j: true) or lastApplied (j: false) to advance past the write. To preserve the read-your-write assumption, we need to change the j: true case to use min(lastDurable, lastApplied) because oplog entries being durable no longer implies being applied. This should be gated by feature flag.
|