Details
-
Task
-
Resolution: Unresolved
-
Major - P3
-
None
-
None
-
None
-
Storage Execution
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.