You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@storm.apache.org by adiya n <na...@yahoo.com> on 2014/07/31 03:48:45 UTC
DRPC failure internals
Hi Nathan, et al
Wanted to understand a bit more on the internals of DRPC. Tried going through the code to some bit but still have the following questions:
1) Tuple failure while handling a drpc query:
Question: Who replays the tuple upon failure - is it the DRPC server or is it the Spout ?
Details:
- Spout polls drpc server to get next tuple.
- Bolt handles it..consider that there is some failure somewhere in downstream bolt.
- Spout's fail()method gets called eventually and that calls fail on the DRPC Invocation Client
apache/incubator-storm
apache/incubator-storm
incubator-storm - Mirror of Apache Storm
View on github.com Preview by Yahoo
- But what I observed is that, upon tuple handling failure, the request was getting replayed
certain number of times before DRPCServer log showed a thrift exception.
- Wanted to know how this replay was happening and which component -drpc server
or the spout - was triggering the replay
2) Spout failure during dprc query - another spout instance comes up - state of the new spout
instance:
- For simplicity, lets say there is spout1 that is originally connected to drpc server.
- Due to some error, spout1 died. Supervisor takes care of launching the new spout instance
lets call this spout2
- What happens to inflight tuples/tuple state map that spout1 had (which originated because of drpc query?)
Does spout2 get a copy of these tuples/tuple state map so that when bolts reply back, spout2 knows
that it needs to reply back to drpc server? Or is it that they are simply dropped?
thanks a ton!
Adiya