David Mao created KAFKA-14025:
---------------------------------
Summary: Request timeout includes time queued per connection
Key: KAFKA-14025
URL: https://issues.apache.org/jira/browse/KAFKA-14025
Project: Kafka
Issue Type: Bug
Reporter: David Mao
In the NetworkClient we measure request timeouts from when a request is first
queued in
{{{}InflightRequests{}}}. A Kafka broker currently only processes at most one
in-flight request at a time per connection. This disconnect between client-side
request timeout enforcement and broker-side request processing means that an
aggressive request timeout can result in spurious timeouts when a connection
has multiple requests in-flight.
Example:
broker 0 has avg 25 ms latency, producer 1 has a request timeout of 50 ms.
t=0 p1 sends r1, b0 starts processing r1
t=5 p1 sends r2
t=10 p1 sends r3
t=25 b0 sends response for r1, starts processing r2
t=50 b0 sends response for r2, starts processing r3
t=60 client times out r3
Instead, we should be measuring request timeouts only once previous requests
have been responded to.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)