Jun - thanks again. This is very helpful. 

Philip

On Jun 12, 2013, at 9:50 PM, Jun Rao <jun...@gmail.com> wrote:

> Actually, you are right. This can happen on a single topic too, if you have
> more than one consumer thread. Each consumer thread pulls data from a
> blocking queue, one or more fetchers are putting data into the queue. Say,
> you have two consumer threads and two partitions from the same broker.
> There is a single fetcher that fetches both partitions and it will put one
> partition's data into a separate queue. So, if one thread stops consuming
> data, it's queue will be full at some point. This will block the fetcher
> from putting the data into the other queue.
> 
> Thanks,
> 
> Jun
> 
> 
> On Wed, Jun 12, 2013 at 9:10 PM, Philip O'Toole <phi...@loggly.com> wrote:
> 
>> Jun -- thanks.
>> 
>> But if the topic is the same, doesn't each thread get a partition?
>> Isn't that how it works?
>> 
>> Philip
>> 
>> On Wed, Jun 12, 2013 at 9:08 PM, Jun Rao <jun...@gmail.com> wrote:
>>> Yes, when the consumer is consuming multiple topics, if one thread stops
>>> consuming topic 1, it can prevent new data getting into the consumer for
>>> topic 2.
>>> 
>>> Thanks,
>>> 
>>> Jun
>>> 
>>> 
>>> On Wed, Jun 12, 2013 at 7:43 PM, Philip O'Toole <phi...@loggly.com>
>> wrote:
>>> 
>>>> Hello -- we're using 0.72. We're looking at the source, but want to be
>>>> sure. :-)
>>>> 
>>>> We create a single ConsumerConnector, call createMessageStreams, and
>>>> hand the streams off to individual threads. If one of those threads
>>>> calls next() on a stream, gets some messages, and then *blocks* in
>>>> some subsequent operation (and blocks for minutes), can it potentially
>>>> cause all other threads (calling next() on other streams) to block
>>>> too? Does something inside the ConsumerConnector block all other
>>>> stream processing? This would explain some behaviour we're seeing.
>>>> 
>>>> Thanks,
>>>> 
>>>> Philip
>> 

Reply via email to