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

   Follow up to https://github.com/apache/kafka/pull/22748
   
   Extends the in-place warm-up promotion to every role change a member can 
make for a task it already holds, so that the client recycles the task instead 
of closing and re-creating it (cf. KAFKA-9501):
   
     - standby -> active and warm-up -> active (promotion): the member keeps 
the standby or warm-up task until the active task is actually granted, because 
that grant waits for the previous owner to release it.
     - active -> standby (demotion): the standby task is granted in the same 
step in which the active task is revoked. The active task still needs an 
acknowledgement, so that the group observes its release before the task is 
granted to its next owner.
     - standby <-> warm-up (conversion): both roles run the same code on the 
client, so the roles are swapped in a single step and no revocation 
acknowledgement is needed at all.
   
   Each of the three "unreleased task" predicates blocks a grant while the 
member's *process* holds the task in another role, which is what keeps a 
process from running the same task twice. These checks are now member-precise: 
a task the member holds itself is a candidate for a role change rather than a 
blocker, while a task held by a sibling member on the same process still blocks.


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