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

Reply via email to