mirror of https://github.com/apache/kafka.git
Filter out unsubscribed topics during reconciliation. This eliminates the window where a consumer group assignment could contain unsubscribed topics when a member unsubscribes from a topic while it has unrevoked partitions. We also apply filtering in a few other cases that would arise when client-side assignors are implemented, since new assignments would no longer be available immediately. This is important for mixed groups, since clients on the classic protocol will rejoin if they receive a topic in their assignment that is no longer in their subscription. Regex subscriptions have a window where the regex is not resolved and we cannot know which topics are part of the subscription. We opt to be conservative and treat unresolved regexes as matching no topics. The same change is applied to share groups, since the reconciliation process is similar. To gauge the performance impact of the change, we add a jmh benchmark. Reviewers: Lucas Brutschy <lbrutschy@confluent.io>, Lianet Magran <lmagrans@confluent.io>, Sushant Mahajan <smahajan@confluent.io>, Dongnuo Lyu <dlyu@confluent.io>, David Jacot <djacot@confluent.io> |
||
---|---|---|
.. | ||
group-coordinator-api/src/main/java/org/apache/kafka/coordinator/group/api/assignor | ||
src | ||
.gitignore |