[ 
https://issues.apache.org/jira/browse/KAFKA-5621?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16108141#comment-16108141
 ] 

Apurva Mehta commented on KAFKA-5621:
-------------------------------------

[~ijuma], can't speak for [~becket_qin], but it seems that the basic 
application could just raise an exception and exit if it can produce for a 
certain amount of time. That seems like better semantics than just being 
blocked on a send because the producer buffers are full. That's why bounding 
the amount of time to wait before erroring out a request makes sense even in 
general IMO.

Of course, there may be applications which could do something more meaningful 
when batches are expired. And not all applications care about ordering either.

> 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)

Reply via email to