[
https://issues.apache.org/jira/browse/KAFKA-13523?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
John Roesler updated KAFKA-13523:
---------------------------------
Affects Version/s: 3.2.0
> Implement IQv2 support in global stores
> ---------------------------------------
>
> Key: KAFKA-13523
> URL: https://issues.apache.org/jira/browse/KAFKA-13523
> Project: Kafka
> Issue Type: Sub-task
> Affects Versions: 3.2.0
> Reporter: John Roesler
> Priority: Blocker
>
> Global stores pose one significant problem for IQv2: when they start up, they
> skip the regular ingest pipeline and instead use the "restoration" pipeline
> to read up until the current end offset. Then, they switch over to the
> regular ingest pipeline.
> IQv2 position tracking expects to track the position of each record from the
> input topic through the ingest pipeline and then get the position headers
> through the restoration pipeline via the changelog topic. The fact that
> global stores "restore" the input topic instead of ingesting it violates our
> expectations.
> It has also caused other problems, so we may want to consider switching the
> global store processing to use the normal paradigm rather than adding
> special-case logic to track positions in global stores.
>
> Note: there are two primary reasons that global stores behave this way:
> # We can write in batches during restoration, so the I/O may be more
> efficient
> # The global thread does not transition to RUNNING state until it reaches
> the (current) end of the input topic, which blocks other threads from joining
> against it, thereby improving the time synchronization of global KTable joins.
> If we want to propose changing the bootstrapping pipeline for global threads,
> we should have some kind of answer to these concerns.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)