[ 
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 <suta...@linkedin.com>
Date:   2016-08-26T01:24:06Z

    KAFKA-4089: fixing batch expired when stale metadata

commit 53f2a6e628c715efe14afebf3725d1a38f9632b9
Author: Sumant Tambe <suta...@yahoo.com>
Date:   2016-08-26T01:24:06Z

    KAFKA-4089: fixing batch expired when stale metadata

commit 8200d8b4822440fefa1a58a962bc746171b260eb
Author: Sumant Tambe <suta...@linkedin.com>
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)

Reply via email to