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]

Reply via email to