[
https://issues.apache.org/jira/browse/KAFKA-4089?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15438269#comment-15438269
]
ASF GitHub Bot commented on KAFKA-4089:
---------------------------------------
GitHub user sutambe opened a pull request:
https://github.com/apache/kafka/pull/1791
KAFKA-4089: KafkaProducer expires batch when metadata is stale
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/sutambe/kafka batch-expired
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/kafka/pull/1791.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #1791
----
commit aeab247716506ed226bf3bb118e7aedf9981e9a6
Author: Sumant Tambe <[email protected]>
Date: 2016-08-26T01:24:06Z
KAFKA-4089: fixing batch expired when stale metadata
commit 53f2a6e628c715efe14afebf3725d1a38f9632b9
Author: Sumant Tambe <[email protected]>
Date: 2016-08-26T01:24:06Z
KAFKA-4089: fixing batch expired when stale metadata
commit 8200d8b4822440fefa1a58a962bc746171b260eb
Author: Sumant Tambe <[email protected]>
Date: 2016-08-26T01:30:41Z
Merge branch 'batch-expired' of https://github.com/sutambe/kafka into
batch-expired
----
> KafkaProducer raises Batch Expired exception
> ---------------------------------------------
>
> Key: KAFKA-4089
> URL: https://issues.apache.org/jira/browse/KAFKA-4089
> Project: Kafka
> Issue Type: Bug
> Components: clients
> Affects Versions: 0.10.0.1
> Reporter: Sumant Tambe
> Assignee: Dong Lin
>
> The basic idea of batch expiration is that we don't expire batches when
> producer thinks "it can make progress". Currently the notion of "making
> progress" involves only in-flight requests (muted partitions). That's not
> sufficient. The other half of the "making progress" is that if we have stale
> metadata, we cannot trust it and therefore can't say we can't make progress.
> Therefore, we don't expire batched when metadata is stale. This also implies
> we don't want to expire batches when we can still make progress even if the
> batch remains in the queue longer than the batch expiration time.
> The current condition in {{abortExpiredBatches}} that bypasses muted
> partitions is necessary but not sufficient. It should additionally restrict
> ejection when metadata is stale.
> Conversely, it should expire batches only when the following is true
> # !muted AND
> # meta-data is fresh AND
> # batch remained in the queue longer than request timeout.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)