[SERVER-85704] Use lastWritten opTime for to wait for afterClusterTime/atClusterTime on secondaries Created: 25/Jan/24 Updated: 31/Jan/24 |
|
| Status: | Backlog |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Wenbin Zhu | Assignee: | Backlog - Replication Team |
| 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
|
||||||||
| Participants: | |||||||||
| Description |
|
Currently if the read concern specifies one of these two options, we may do a no-op write if needed. If the read is on a secondary, the node waits for a short period of time, and then requests the primary to write a no-op if the lastApplied still cannot catch-up to the specified afterClusterTime / atClusterTime after the wait. We will change this to wait for the lastWritten opTime to catch-up instead of lastApplied because to decide whether a no-op write is needed, we just need to know that the specified opTime exists in the oplog, without having it to be applied. |