lucasbru opened a new pull request, #23794: URL: https://github.com/apache/kafka/pull/23794
This is the third change of the series that makes the warm-up task refiner (KAFKA-20665) compatible with clients that speak version 0 of the streams group heartbeat (see KAFKA-21111), stacked on #23784. The first commit of this branch is that PR; please review only the last commit. I will rebase once #23784 is merged. A copy of a task on a member that does not report its restore progress can never be observed to be caught up, so it is neither promoted nor protected, like any other copy that is not caught up. There is one exception, for an orphan: a stateful task that nobody holds as an active task, whose target owner can be warmed up but holds no state for it. If the target assignment also names the holder of the unobservable copy as a standby holder of the task, the holder runs the task as temporary owner while the target owner warms up. A holder that heartbeats with version 0, or whose version is not known yet, is such a member. Here the alternative to promoting a copy of unknown lag is a restore from scratch on the target owner next to a standby task that would have to restore anyway, whereas elsewhere the alternative is keeping a running owner. If the copy turns out to be stale, the temporary owner restores it as an active task before it processes anything, which is the restore the target assignment demands of it as a standby holder anyway. If it is close, the task resumes processing at once. The hand-over then demotes the temporary owner to its standby task in place. The refiner is not the default yet, so this change is not live. The tests cover the promotion for a holder of version 0 and for one of unknown version, and the cases where it must not apply: a holder that reports being behind, a standby that the target assignment does not keep on its holder, and a target owner that cannot be warmed up. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
