This is an automated email from the ASF dual-hosted git repository.
alexey pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git
The following commit(s) were added to refs/heads/master by this push:
new 320ba72 [docs] add info on READ_YOUR_WRITES scan mode
320ba72 is described below
commit 320ba7282d171b07b8ddd03749a264d95a6649ec
Author: Alexey Serbin <[email protected]>
AuthorDate: Thu Jan 20 11:18:56 2022 -0800
[docs] add info on READ_YOUR_WRITES scan mode
Change-Id: Idccc6557d3f7dfc5640f932e460cbf7242044b51
Reviewed-on: http://gerrit.cloudera.org:8080/18164
Tested-by: Kudu Jenkins
Reviewed-by: Andrew Wong <[email protected]>
---
docs/transaction_semantics.adoc | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/docs/transaction_semantics.adoc b/docs/transaction_semantics.adoc
index 2af48a0..ff9ee70 100644
--- a/docs/transaction_semantics.adoc
+++ b/docs/transaction_semantics.adoc
@@ -240,6 +240,22 @@ will eventually allow Kudu to have full
`strict-serializable` semantics for read
and writes. This is still a work in progress and some anomalies are still
possible
(see <<known_issues>>). Only scans in this mode can be fault-tolerant.
+`READ_YOUR_WRITES`:: This read mode relies on the state of a Kudu client to
+issue subsequent scan requests. When issuing a scan request in this read mode,
+a Kudu client provides the latest timestamp it observed so far. The server
+selects a timestamp higher than the timestamp provided by the client, that is
+also guaranteed to have all prior write operations committed and applied to
+the data. That translates into read-your-writes and read-your-reads behavior
+which is useful in scenarios where subsequent scan requests should contain the
+data the client has seen so far while reading and writing during its current
+session. link:https://issues.apache.org/jira/browse/KUDU-1704[KUDU-1704] could
+provide more details and references, if necessary. To summarize, this read mode
+
+- ensures read-your-writes and read-your-reads session guarantees
+- minimizes the latency caused by waiting for outstanding write operations
+ at the server side to complete
+- doesn't guarantee linearizability
+
Selecting between read modes requires balancing the trade-offs and making a
choice
that fits your workload. For instance, a reporting application that needs to
scan the entire database might need to perform careful accounting operations,
so that