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::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.