lucasbru commented on PR #21565:
URL: https://github.com/apache/kafka/pull/21565#issuecomment-4046800062
@mjsax What you are saying was exactly my point, when I said "So it did not
make a difference before. But you are right that with static members, this does
make a difference since we can restart the client without a rebalance." And
that's also how it was specified in KIP-1071. In the current code, we
simplified the logic here since for dynamic members those properties won't
change in practice, but we went the safe route to bump the group epoch and
reassign if they change (which I guess can only happen in a non-standard
implemtation of KS).
KIP-1071 clearly specifies which properties need to bump the group epoch, in
the first paragraph @chickenchickenlove mentioned. The second one seems like an
oversimplification. But yeah, it's good to go through the list of properties
again and make sure the KIP as updated correctly (since we have made bunch of
changes). So KIP-1071 species
- Topology metadata - This doesn't matter yet, since topology metadata is
fixed ATM
- Rack ID - Correct, since it can influence assignment. Note that consumer
groups do _not_ rebalance if `rack.id` of the static member changes. But I
would agree we should call the assignor again.
- Client tags - Correct, as above.
- Process ID - Correct, this does influence assignment of standby tasks
(they cannot be assigned to a process which already owns the active task), so
call assignor again. However, this can be tricky for the assignor, because
changing the process ID can mean that our current assignment is now invalid
(since one process now owns active + static version of a task). This is
something we need to test for -- or, as a simplification, we could just
disallow process ID changes for static members. I'd like to keep it simple
here, and add extra complications when there is a need for it, wdyt @mjsax .
So I think the list looks okay. Here are other things that can change
without a group epoch bump:
- `user.endpoint` -- this does not influence the assignment at all.
However, we do need to handle it via the endpointInformationEpoch.
- `client ID` -- does not influence assignment.
- `client Host` -- does not influence assignment.
- `rebalance.timeout.ms` -- does not influence assignment.
So I would for this particular check, the list in KIP-1071 good. But yeah,
we need to take care to handle `user.endpoint` and `process ID` correctly for
static members.
--
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]