Nicholas Telford created KAFKA-15178: ----------------------------------------
Summary: Poor performance of ConsumerCoordinator with many TopicPartitions Key: KAFKA-15178 URL: https://issues.apache.org/jira/browse/KAFKA-15178 Project: Kafka Issue Type: Bug Components: consumer Affects Versions: 3.5.0 Reporter: Nicholas Telford Assignee: Nicholas Telford Attachments: pollPhase.png Doing some profiling of my Kafka Streams application, I noticed that the {{pollPhase}} suffers from a minor performance issue. See flame graph below. !pollPhase.png|width=1028,height=308! {{ConsumerCoordinator.poll}} calls {{{}rejoinNeededOrPending{}}}, which checks the current {{metadataSnapshot}} against the {{{}assignmentSnapshot{}}}. This comparison is a deep-equality check, and if there's a large number of topic-partitions being consumed by the application, then this comparison can perform poorly. I suspect this can be trivially addressed with a {{boolean}} flag that indicates when the {{metadataSnapshot}} has been updated (or is "dirty"), and actually needs to be checked, since most of the time it should be identical to {{{}assignmentSnapshot{}}}. I plan to raise a PR with this optimization to address this issue. -- This message was sent by Atlassian Jira (v8.20.10#820010)