[improve][broker][PIP-379] Improve hash collision handling by restoring consumer when other leaves #23447
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #23443
Motivation
In the current ConsistentHashingStickyKeyConsumerSelector implementation, when there's a hash ring point collision,
the original entry will be preserved and the attempted addition will be rejected.
This isn't a problem with the consumerNameIndexTracker solution since the collisions won't align for all hash ring points when using the same consumer name. Because of this, collisions won't affect the overall distribution significantly when the number of hash ring points is sufficiently large (>100).
However, when the "selected" consumer is removed, the colliding consumer should be selected and take over it's hash ring point. This PR implements that logic.
Modifications
Documentation
doc
doc-required
doc-not-needed
doc-complete