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

Jiangjie Qin commented on KAFKA-1788:
-------------------------------------

I took a shot to incorporate the solution to this problem in KAFKA-2142.
The approach I took there is to just use metadata timeout instead of add a new 
timeout. Because I think this is essentially metadata not available. So we 
should treat it the same as in send(). This also saves us another timeout 
configuration.
[~ewencp] My concern about having cap on the buffer for each topic-partition is 
that what if the traffic of each topic-partition is not balanced. If so we 
might end up waiting on a busy topic-partition's buffer allocation while we 
actually have plenty of memory to use. That could hurt the performance a lot.

> producer record can stay in RecordAccumulator forever if leader is no 
> available
> -------------------------------------------------------------------------------
>
>                 Key: KAFKA-1788
>                 URL: https://issues.apache.org/jira/browse/KAFKA-1788
>             Project: Kafka
>          Issue Type: Bug
>          Components: core, producer 
>    Affects Versions: 0.8.2.0
>            Reporter: Jun Rao
>            Assignee: Parth Brahmbhatt
>              Labels: newbie++
>             Fix For: 0.8.3
>
>         Attachments: KAFKA-1788.patch, KAFKA-1788_2015-01-06_13:42:37.patch, 
> KAFKA-1788_2015-01-06_13:44:41.patch
>
>
> In the new producer, when a partition has no leader for a long time (e.g., 
> all replicas are down), the records for that partition will stay in the 
> RecordAccumulator until the leader is available. This may cause the 
> bufferpool to be full and the callback for the produced message to block for 
> a long time.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to