[ https://issues.apache.org/jira/browse/KAFKA-5621?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16108050#comment-16108050 ]
Jiangjie Qin commented on KAFKA-5621: ------------------------------------- [~apurva] Thanks for the explanation. I think we are on the same page that all the users (whether applications or MM) would want the producer to 1. handle temporary error as much as possible. 2. raise an error to the applications after some reasonable amount of time instead of silently retry forever The concern I have for the current proposal of this ticket is that when user set retries to a big number, we will fail on (2). As you can imagine when user call flush() it will basically block forever. The proposed new configurations sounds reasonable to me, we can discussed in KIP-91. It would be helpful to see how users would configure the producer in different scenarios and see if that makes sense. > The producer should retry expired batches when retries are enabled > ------------------------------------------------------------------ > > Key: KAFKA-5621 > URL: https://issues.apache.org/jira/browse/KAFKA-5621 > Project: Kafka > Issue Type: Bug > Reporter: Apurva Mehta > Assignee: Apurva Mehta > Fix For: 1.0.0 > > > Today, when a batch is expired in the accumulator, a {{TimeoutException}} is > raised to the user. > It might be better the producer to retry the expired batch rather up to the > configured number of retries. This is more intuitive from the user's point of > view. > Further the proposed behavior makes it easier for applications like mirror > maker to provide ordering guarantees even when batches expire. Today, they > would resend the expired batch and it would get added to the back of the > queue, causing the output ordering to be different from the input ordering. -- This message was sent by Atlassian JIRA (v6.4.14#64029)