[ https://issues.apache.org/jira/browse/KAFKA-15402?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17916037#comment-17916037 ]
Benoit Delbosc edited comment on KAFKA-15402 at 1/22/25 12:18 PM: ------------------------------------------------------------------ Hi David, thanks for your response, I have just tested a 3.9.0, here is my limited understanding: The {{ClassicKafkaConsumer}} is closing the {{Fetcher}}, in {{Fetcher#MaybecloseFetchSession}} a {{FetchRequest}} is prepared with sessionId and the {{epoch=FINAL}} metadata to release the session. The request is sent during the first call to {{ConsumerNetworkClient#poll}} which returns nothing, the Fetcher performs a second poll, it takes ~500ms, this is reported in the {{ClientResponse(latencyMs=508)}}, the time is spent in {{org.apache.kafka.common.network.Selector#select}} which is invoking the {{nioSelect}}. On the broker side I see that the {{FetchRequest}} is processed only in few milliseconds in {{kafka.server.KafkaApis#handleFetchRequest}} and the response is immediately received by the consumer. To me it looks like a network latency, it's like the {{FetchRequest}} is sent by the consumer but it is not flushed or not readable immediately by the broker but I am not able to prove it. Let me know if you have any ideas for moving forward. Note that Kafka is deployed with Zookeeper and consumer properties contain a {{group.id}} and {{enable.auto.commit=false}}. was (Author: bdelbosc): Hi David, thanks for your response, I have just tested a 3.9.0, here is my limited understanding: The {{ClassicKafkaConsumer}} is closing the {{Fetcher}}, in {{Fetcher#MaybecloseFetchSession}} a {{FetchRequest}} is prepared with sessionId and the {{epoch=FINAL}} metadata to release the session. The request is sent during the first call to {{ConsumerNetworkClient#poll}} which returns nothing, the Fetcher performs second poll, it takes ~500ms, this is reported in the {{ClientResponse(latencyMs=508)}}, the time is spent in {{org.apache.kafka.common.network.Selector#select}} which is invoking the {{nioSelect}}. On the broker side I see that the {{FetchRequest}} is processed only in few milliseconds in {{kafka.server.KafkaApis#handleFetchRequest}} and the response is immediately received by the consumer. So it's like the {{FetchRequest}} is sent by the consumer but it is not flushed or not readable immediately by the broker but I am not able to prove it. Let me know if you have any ideas for moving forward. Note that Kafka is deployed with Zookeeper and consumer properties contain a {{group.id}} and {{enable.auto.commit=false}}. > Performance regression on close consumer after upgrading to 3.5.0 > ----------------------------------------------------------------- > > Key: KAFKA-15402 > URL: https://issues.apache.org/jira/browse/KAFKA-15402 > Project: Kafka > Issue Type: Bug > Components: clients, consumer > Affects Versions: 3.5.0, 3.6.0, 3.5.1 > Reporter: Benoit Delbosc > Assignee: Kirk True > Priority: Major > Fix For: 4.1.0 > > Attachments: image-2023-08-24-18-51-21-720.png, > image-2023-08-24-18-51-57-435.png, image-2023-08-25-10-50-28-079.png > > > Hi, > After upgrading to Kafka client version 3.5.0, we have observed a significant > increase in the duration of our Java unit tests. These unit tests heavily > rely on the Kafka Admin, Producer, and Consumer API. > When using Kafka server version 3.4.1, the duration of the unit tests > increased from 8 seconds (with Kafka client 3.4.1) to 18 seconds (with Kafka > client 3.5.0). > Upgrading the Kafka server to 3.5.1 show similar results. > I have come across the issue KAFKA-15178, which could be the culprit. I will > attempt to test the proposed patch. > In the meantime, if you have any ideas that could help identify and address > the regression, please let me know. -- This message was sent by Atlassian Jira (v8.20.10#820010)