Fully utilize the max.in.flight.requests.per.connection parameter on the idempotent producer #4989
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.
Currently, the librdkafka implementation sends only one produce request at a time, regardless of the configured value for the
max.in.flight.requests.per.connection
parameter. This limitation prevents the producer from fully leveraging the potential of concurrent requests, which can impact throughput and performance.With the proposed changes, the
max.in.flight.requests.per.connection
parameter will be respected, allowing the number of concurrent requests to be aligned with the specified value. This enhancement aims to optimize the idempotent producer's performance by enabling multiple produce requests to be sent simultaneously, thereby improving overall latency.To validate my findings, I conducted tests on a network with a simulated delay of 1000 ms, configured using the
tc
command (tc qdisc add dev eth0 root netem delay 1000ms
). I have also attached pcap files for your review.Relevant producer parameters: