Regarding the edge case where
get(key, asOfTimestamp) is called with a timestamp bound older than the specified history retention but the latest record version for the key satisfies the timestamp bound, the proposal above says that the latest record version should be returned in this case, rather than rejecting the timestamped query and returning null. Returning null in this casethe record is preferable because its existence (as the latest value for the key) is guaranteed in the store, and is accessible from
get(key) anyway. The alternative of returning null, i.e., strict enforcement of the store's history retention, could be valid as well but the latest record version in this case would still be accessible from
get(key) , so it's more user-friendly to have the store return the value from
get(key, asOfTimestamp) rather than requiring the user to is not very user-friendly as users would then have to determine whether to call
get(key, timestamp) to account for this edge case.