[SERVER-67973] Make timestamp behavior consistent across read sources in the recovery unit Created: 11/Jul/22 Updated: 05/Dec/22 |
|
| Status: | Backlog |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Henrik Edin | Assignee: | Backlog - Storage Execution Team |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | techdebt | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Assigned Teams: |
Storage Execution
|
| Participants: |
| Description |
|
The different read sources establish its readAt timestamp in different ways in the RecoveryUnit. kProvided and kLastApplied sets the timestamp when setTimestampReadSource is called. kNoOverlap, kAllDurableSnapshot, kMajorityCommitted opens a snapshot if not already opened and sets the timestamp when calling getPointInTimeReadTimestamp. The different behavior around when a timestamp is set and which calls will open a snapshot makes it difficult to use the API in a correct way that will work in a consistent way for the different read sources. We should try and unify the behavior. |