You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@storm.apache.org by Dong Mo <mo...@gmail.com> on 2014/04/04 20:01:13 UTC

Tuple queuing mechanism in storm

Dear list,

I would like to know how tuple queuing works in Storm.

What is the semantic of emit() exactly when it returns?

Does a returned emit mean that the tuple is successfully delivered to the
destination or that a tuple is delivered to this bolt's local sending queue
waiting for delivery over the network?

Is that a blocking function or it has no reliable delivery guarantee at all?

More generally, how does storm's receiving and sending queue mechanism
works?

Say I have a boltA emitting words very quickly and it is connected to
another boltB which do super complicated encryption on the words and thus
is very slow. In this scenario, where does the "queue" get built up and
where does the tuple drop happen? Will boltA get blocked also because the
blocking emit? Or boltA will just emit tuple with reliably delivery in
sense of TCP and the receiving queue of BoltB will get overflowed?

Thanks
-Mo