-
Type: Improvement
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Storage
-
Fully Compatible
-
Execution Team 2020-07-27, Execution Team 2020-08-10
Once SERVER-49547 is completed, the ephemeralForTest KVEngine is going to maintain a map of available history that snapshots can be opened on for transactions as long as they're not older than the oldest timestamp.
Most of the work here will be performed on the ephemeralForTest RecoveryUnit to support point-in-time read transactions to obtain the appropriate snapshot for the transaction.
In this ticket we should be able to implement support for a few ReadSource's, namely the following:
- ReadSource::kUnset
- ReadSource::kNoTimestamp
- ReadSource::kProvided
- ReadSource::kAllDurableSnapshot (all durable is already implemented)
We'll need to implement the setTimestampReadSource method on ephemeralForTest's RecoveryUnit.
The ReadSource's listed above should behave in the following ways:
- ReadSource::kUnset and ReadSource::kNoTimestamp will return the latest snapshot available from the storage engine. This is related to today's behaviour.
- ReadSource::kProvided will return the latest snapshot available from the storage engine whose timestamp is less than or equal to the provided timestamp.
- If the provided timestamp is less than the oldest timestamp, we should return an error.
- depends on
-
SERVER-49547 ephemeralForTest needs to keep track of the available history based on the oldest timestamp
- Closed
- is depended on by
-
SERVER-49792 Implement a snapshot manager for ephemeralForTest
- Closed
-
SERVER-48314 ephemeralForTest should support timestamps
- Closed
-
SERVER-49391 Run ephemeralForTest/biggie suites with --enableMajorityReadConcern=0
- Closed