mjsax opened a new pull request, #23987:
URL: https://github.com/apache/kafka/pull/23987

   A client reports the changelog offsets of an active task only while it 
restores the task. The heartbeat carries offsets only when the assignment 
changes, when streams.task.offset.interval.ms passes (default 60 s), or when a 
warm-up task is within
   acceptable.recovery.lag. So the broker learned that an active task had 
finished restoring, or had come within acceptable.recovery.lag, only with the 
next periodic report. Until then the refiner took the owner to be restoring the 
task with an old lag. It did not protect the owner as hot, and it granted a 
migration off that owner cold instead of staging it behind a warm-up task.
   
   The client now also sends offsets on the next heartbeat when an active task 
it restores comes within acceptable.recovery.lag, and when an active task that 
was in the last sent offsets has dropped out of them, ie, finished restoring. 
The warm-up and active checks share one predicate.
   
   The refiner can still run on another member's heartbeat before the member 
that finished restoring has sent its offsets. That window is now at most one 
heartbeat interval, instead of the task offset interval.


-- 
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