I profiled a producer throughput benchmark between a producer and a remote broker. It turns out that the background send threads spends ~97% of its time waiting to read the acknowledgement from the broker.
I propose we change the current behavior of request.required.acks=0 to mean no acknowledgement from the broker. This will mimic the 0.7 producer behavior and will enable tuning the producer for very high throughput.
|Field||Original Value||New Value|
|Status||Open [ 1 ]||In Progress [ 3 ]|
|Status||Patch Available [ 10002 ]||In Progress [ 3 ]|
|Attachment||kafka-736-draft-producer-latency-20threads-acks1.out [ 12568038 ]|
|Attachment||kafka-736-v3-producer-latency-20threads-acks1.out [ 12568039 ]|
|Labels||p2 replication-performance||p1 replication-performance|
|Status||Patch Available [ 10002 ]||Resolved [ 5 ]|
|Resolution||Fixed [ 1 ]|
|Status||Resolved [ 5 ]||Closed [ 6 ]|
|Workflow||no-reopen-closed, patch-avail [ 12747707 ]||Apache Kafka Workflow [ 13052957 ]|
|Workflow||Apache Kafka Workflow [ 13052957 ]||no-reopen-closed, patch-avail [ 13055018 ]|