storm-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dong Mo <monted...@gmail.com>
Subject Is emit() a blocking call? How does queuing works in storm?
Date Thu, 03 Apr 2014 19:04:58 GMT
Dear list,

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

Mime
View raw message