Hi, Charlie.

Your Spout has the issue. Spout shouldn't stay longer in nextTuple() cause
Spout takes care of events (including calling ack, fail, nextTuple) in
event loop with just one thread.

In other words, back pressure cannot work in your Spout cause how max spout
pending works is checking pending queue size before calling nextTuple() and
if it's greater than max spout pending, it skips calling nextTuple().

If you want to follow max spout pending strictly, nextTuple() should emit
only one tuple, but it is not hard rule.

Please note that max spout pending only works with ack mode, and for now it
is only way for Storm to handle back pressure.

Hope this helps.

Thanks,
Jungtaek Lim (HeartSaVioR)

2015년 7월 9일 목요일, charlie quillard<[email protected]>님이 작성한 메시지:

>  Hi,
>
>
>  I began my performance tests on storm and  in my full use case when i
> send many tuples(> 1000), I can have a "core dump " because my bolt cannot
> treated all my spout tuples.
>
> And for testing , I added a gist :
> https://gist.github.com/episanchez/a5c101bdf637a5ff2e28 , and when I did
> not put a 1 millisecond sleep, I had the same problem.
>
> So i would like to know how to fix it without to put a sleep.
>
>
>  Thanks in advance,
>
> Charlie QUILLARD
>


-- 
Name : 임 정택
Blog : http://www.heartsavior.net / http://dev.heartsavior.net
Twitter : http://twitter.com/heartsavior
LinkedIn : http://www.linkedin.com/in/heartsavior

Reply via email to