[
https://issues.apache.org/jira/browse/KAFKA-5621?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16112129#comment-16112129
]
Apurva Mehta commented on KAFKA-5621:
-------------------------------------
[~sutambe] : one clarification. my proposal for `max.message.delivery.wait.ms`
means just that. If a message has not been sent after this time, error it out.
So if the `send` happened at time `T`, then the message would be expired if `T
+ max.message.delivery.wait.ms` has elapsed and the message has still not been
successfully acknowledged. In a sense, this would make setting `retries` a bit
redundant unless you set `retries=0`. I think this is more intuitive than a
`batch.expiry.ms`. For instance, would the the clock for batch expiry be reset
every time the batch is requeued after failure?
Also [~ijuma]`s point is that the `max.block.wait.ms` is the upper bound on how
long the producer will be stuck trying to send a batch anyway once the buffers
are full, so there would never be a truly infinite wait.
AT this point I think a config like `max.message.delivery.wait.ms` is a decent
way to address multiple use cases. As I said before, I think we should open
that discussion and try to converge on the details on the mailing list.
[~sutambe] are you planning on doing that?
> 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)