-
-
Notifications
You must be signed in to change notification settings - Fork 196
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
kgo: work around KIP-814 limitations
I noticed fork zywillc#1 attempting to fix a problem that I didn't know existed. After a full day of looking into it, as it turns out, KIP-345's implementation had no solution for restarting leaders while changing interests, and KIP-814 further doesn't close the gap. As a client, we can leverage a little bit of KIP-814 to close the gap ourselves. We only do this for well known balancers because we cannot be sure if custom balancers make weird choices depending on time, number of invocations, instance id / member id oridering, etc., so we cannot rely on balance plans to be the same from one run to the next. We do rely on this for our own balancers. Technically this may not be true if multiple member-id-only members are restarting at once. That's ok. We expect instance id using groups to be filled with instance id members and thus always have the same sort ordering in our balancers. We could add another optional interface to opt in to this enhanced re-check behavior, but I'm not sure how common it is for somebody to: (a) write a custom balancer (b) use instance IDs (c) change topic interests across restarts so we'll just leave the option out for now as it'd be complicated to discover. Regardless, there's a lot of documentation on what's being done and why. Also see KAFKA-13435 and the unaddressed KAFKA-12759
- Loading branch information
Showing
3 changed files
with
87 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters