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