Reads state of a
KeyValueService
in accordance with the provided
AtlasDB timestamp, following the AtlasDB read protocol. This includes reading the most recent committed value for
each cell that would be visible at the provided timestamp(s) and filtering out versions that have been aborted or
not committed yet. For legacy reasons, this does NOT remove empty values: these must be filtered out before returning
to the user.
If used in the context of a transaction, users are responsible for validating that snapshots read are still
guaranteed to be consistent (for example, transactions may need to validate their pre-commit conditions or check
that sweep has not progressed). Some methods may have partial, intermediate validation required as part of servicing
a read; this class will carry out this intermediate validation.
Although this interface performs user-level reads, internal writes may be performed (for example, as part of the
read protocol, to abort a long-running transaction).