[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:
Depends
is depended on by SERVER-85599 [Milestone] LastWritten OpTime Checkp... In Progress
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.

We may need to come up with a general wait-for-timestamp mechanism that also works for SERVER-85704.


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