Hi Balazs,


Tuples are acked only when the window slides and the events fall out of the 
window. 

So max.spout.pending should be more than max number of tuples in window length 
+ sliding interval.

Thanks,
Arun

On 8/24/16, 8:33 PM, "Balázs Kossovics" <balazs.kossov...@s4m.io> wrote:

>Hello,
>
>I've recently hit a problem with my topology using the windowing mode 
>when I set the TOPOLOGY_MAX_SPOUT_PENDING too low.
>
>I have a window lenght of 60 seconds and sliding interval of 1 seconds 
>with field based timestamping. In my first tests I didn't specify 
>TOPOLOGY_MAX_SPOUT_PENDING, so when I was working on historical data my 
>topology died with an OutOfMemoryError because of the practically 
>unbounded dataflow. Nothing surprising here.
>
>Just to make sure to avoid the OOMError at the next run, I set 
>TOPOLOGY_MAX_SPOUT_PENDING to 10, which basically pushed my topology in 
>a deadlock, because the first 10 tuple was all in the same second, so 
>the WatermarkTimeEvictionPolicy didn't trigger Action. EXPIRE. Following 
>this train of thought, imagine that the number of messages during given 
>window attains this limit: your spout stops emitting, so the tuple which 
>would make the expire event trigger would never come.
>
>Am I right in thinking that TOPOLOGY_MAX_SPOUT_PENDING must always be 
>greate than the number of messages during any timeperiod equivalent to 
>the window length?
>
>Best regards,
>Balazs
>


Reply via email to