[
https://issues.apache.org/jira/browse/KAFKA-18905?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sean Quah updated KAFKA-18905:
------------------------------
Description:
Consider a similar setup to KAFKA-9199:
The broker attempts to cache the state of the last 5 batches in order to enable
duplicate detection. It is possible in some cases for this to result in a
sequence such as the following:
# Send batch n
# Batch n successfully written, but response is delayed
# Send batch n+1, receive successful response for n+1
# Send batch n+2, receive successful response for n+2
# Send batch n+3, receive successful response for n+3
# Send batch n+4, receive successful response for n+4
# Send batch n+5, receive successful response for n+5
# Batch n times out, or we receive a {{NOT_LEADER_OR_FOLLOWER}} response
# Retry batch n, the response is {{OUT_OF_ORDER_SEQUENCE}}, retry again and
again
This situation could happen with a {{max.in.flight.requests.per.connection}} as
low as 2.
To avoid this situation, we can avoid putting batch n+5 in flight while batch n
is in flight when idempotency is enabled.
was:
Consider a similar setup to KAFKA-9199:
The broker attempts to cache the state of the last 5 batches in order to enable
duplicate detection. It is possible in some cases for this to result in a
sequence such as the following:
# Send batch n
# Batch n successfully written, but response is delayed
# Send batch n+1, receive successful response for n+1
# Send batch n+2, receive successful response for n+2
# Send batch n+3, receive successful response for n+3
# Send batch n+4, receive successful response for n+4
# Send batch n+5, receive successful response for n+5
# Batch n times out, or we receive a {{NOT_LEADER_OR_FOLLOWER}} response
# Retry batch n, the response is {{OUT_OF_ORDER_SEQUENCE}}, retry again and
again
This situation could happen with a {{max.in.flight.requests.per.connection}} as
low as 2.
To avoid this situation, we can avoid putting batch n+5 in flight while batch n
is in flight.
> Avoid out of order sequence errors from multiple in-flight batches
> ------------------------------------------------------------------
>
> Key: KAFKA-18905
> URL: https://issues.apache.org/jira/browse/KAFKA-18905
> Project: Kafka
> Issue Type: Bug
> Components: producer
> Reporter: Sean Quah
> Priority: Minor
>
> Consider a similar setup to KAFKA-9199:
> The broker attempts to cache the state of the last 5 batches in order to
> enable duplicate detection. It is possible in some cases for this to result
> in a sequence such as the following:
> # Send batch n
> # Batch n successfully written, but response is delayed
> # Send batch n+1, receive successful response for n+1
> # Send batch n+2, receive successful response for n+2
> # Send batch n+3, receive successful response for n+3
> # Send batch n+4, receive successful response for n+4
> # Send batch n+5, receive successful response for n+5
> # Batch n times out, or we receive a {{NOT_LEADER_OR_FOLLOWER}} response
> # Retry batch n, the response is {{OUT_OF_ORDER_SEQUENCE}}, retry again and
> again
> This situation could happen with a {{max.in.flight.requests.per.connection}}
> as low as 2.
> To avoid this situation, we can avoid putting batch n+5 in flight while batch
> n is in flight when idempotency is enabled.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)