Details
-
Task
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
Impala 2.8.0
Description
For 2.9 we want to change the default Kudu read behavior mode, which was previously exposed via an Impala gflag.
Currently the default read mode is set to "READ_LATEST", which essentially provides no guarantees on reading except that any read issued will read the latest value that the target replica happens to have. This is not necessarily a time after a previous write operation in the same session. By changing the read mode to the misleadingly named "READ_AT_SNAPSHOT", we can ensure that Kudu reads will all be at times at least or greater than the latest "observed" time (which Impala already sets on the client). Note that this does not mean all reads are performed at the same timestamp (i.e. a snapshot read) because that requires setting a snapshot timestamp, but doing this will require more work in the future in both Impala (IMPALA-4685) and Kudu (which needs to make some client changes and also fix how they GC historical values).
This means that, after this change, values written within a session will always be visible to subsequent reads. Before this change, this was usually the case but not guaranteed. The Kudu team calls this "Read Your Writes".