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]
