[ 
https://issues.apache.org/jira/browse/KAFKA-14641?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Guozhang Wang updated KAFKA-14641:
----------------------------------
    Component/s: streams

> Cleanup CommitNeeded after EOS-V1 is removed
> --------------------------------------------
>
>                 Key: KAFKA-14641
>                 URL: https://issues.apache.org/jira/browse/KAFKA-14641
>             Project: Kafka
>          Issue Type: Improvement
>          Components: streams
>            Reporter: Guozhang Wang
>            Priority: Major
>
> This is a follow-up of KAFKA-14294.
> Today we have several flags to determine if KS need to execute a commit: 1) 
> task-level "commitNeeded" which is set whenever process() or punctuator() is 
> called, 2) if there are input topic offsets to commit, retrieved from the 
> "task.prepareCommit()", 3) the "transactionInFlight" flag from producer as a 
> fix of KAFKA-14294 (this subsumes the first "commitNeeded" functionality).
> Given that we are still having EOS-v1, cleanup this would be a bit complex. 
> But after the deprecated EOS-V1 is removed, we can cleanup those controls 
> since for any commit cases, we would need to commit all tasks anyways whereas 
> in EOS-v1, we would commit probably a subset of tasks since they are done by 
> different producers and hence different txns.
> A quick thought is the following:
> 1) We would not need the per-task "commitNeeded" anymore.
> 2) We would maintain a single "commitNeeded" flag on the task-executor, hence 
> on the thread level. It is set whenever `process()` or `punctuator` is called.
> 3) Whenever we need to commit, either a) periodically, b) upon revocation, c) 
> upon user request, we simply check that flag, and if necessary commit all 
> tasks and reset the flag.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to