Vinoth Chandar created KAFKA-8870:
-------------------------------------
Summary: Prevent dirty reads of Streams state store from
Interactive queries
Key: KAFKA-8870
URL: https://issues.apache.org/jira/browse/KAFKA-8870
Project: Kafka
Issue Type: Improvement
Components: streams
Reporter: Vinoth Chandar
Today, Interactive Queries (IQ) against Streams state store could see
uncommitted data, even with EOS processing guarantees (these are actually
orthogonal, but clarifying since EOS may give the impression that everything is
dandy). This is causes primarily because state updates in rocksdb are visible
even before the kafka transaction is committed. Thus, if the instance fails,
then the failed over instance will redo the uncommited old transaction and the
following could be possible during recovery,.
Value for key K can go from *V0 → V1 → V2* on active instance A, IQ reads V1,
instance A fails and any failure/rebalancing will leave the standy instance B
rewinding offsets and reprocessing, during which time IQ can again see V0 or V1
or any number of previous values for the same key.
In this issue, we will plan work towards providing consistency for IQ, for a
single row in a single state store. i.e once a query sees V1, it can only see
either V1 or V2.
--
This message was sent by Atlassian Jira
(v8.3.2#803003)