I'm basing this off of later Storm versions, because I'm not familiar with
0.9, so buyer beware. As far as I know the logic hasn't changed though, so
I'll be linking to the 2.0.0 classes.

1. No, you don't need to ack or fail unanchored tuples. Storm isn't keeping
track of those tuples at all. Here's the OutputCollector implementation for
bolts in 2.0.0
https://github.com/apache/storm/blob/ffa607e2464a361a8f2fa548cc8043f5a8818d04/storm-client/src/jvm/org/apache/storm/executor/bolt/BoltOutputCollectorImpl.java#L128.
As you can see, if you call ack or fail on a tuple with no anchors, nothing
really happens.

2. If the tuple is anchored at the spout (i.e. the spout emitted the tuple
with a message id), then yes. If you want to disable acking globally, you
can do so by setting topology.acker.executors to 0
https://github.com/apache/storm/blob/ffa607e2464a361a8f2fa548cc8043f5a8818d04/storm-client/src/jvm/org/apache/storm/Config.java#L375
setting.

2018-03-12 20:34 GMT+01:00 Shubham Gupta <shubham.gu...@sizmek.com>:

>
> Hi,
>
> I had a few doubts regarding storm reliability mechanism :
> - Do we need to ack (or fail) unanchored tuples ?
> - Is is always necessary to ack or fail every tuple received from the
> spout in the first bolt to avoid Out of Memory error in Storm ?
>
> Thanks in advance
>
> Regards
> Shubham Gupta
>
>

Reply via email to