Glad to help the code can be a bit confusing at times.
 - Bobby 

     On Monday, November 16, 2015 8:29 AM, Stephen Powis 
<[email protected]> wrote:
   

 Ah Thanks Bobby!  That was the piece I was missing then.

On Mon, Nov 16, 2015 at 10:24 PM, Bobby Evans
<[email protected]> wrote:
> You are correct about the put restarting the clock for removing the tuple 
> tree from the acker map, but the timeout code in the acker does not trigger a 
> timeout of a tuple, it just purges the tuple from the ackers memory.  The 
> timeout code for a tuple is actually in the spout.  It has a corresponding 
> RotatingMap
> https://github.com/apache/storm/blob/master/storm-core/src/clj/backtype/storm/daemon/executor.clj#L493
> It does a put once, when the tuple is emitted, and when it expires the fail 
> is called.
>  - Bobby
>
>
>      On Monday, November 16, 2015 6:46 AM, Stephen Powis 
><[email protected]> wrote:
>
>
>  I'm trying to better understand the acker behavior and how it deals
> with tuple time outs.  I've read the documentation on the storm
> website, but from my rudimentary knowledge of clojure, it seems like
> the docs and the code don't completely align (or I'm completely
> missing something)
>
> The short of it is I'm wondering if the line linked below in acker.clj
> resets the tuple timeout value every time a bolt acks a tuple:
> https://github.com/apache/storm/blob/master/storm-core/src/clj/backtype/storm/daemon/acker.clj#L65
>
> It seems like for every tuple coming into the acker, it calls
> rotatingMap.put() on the instance, which in turn resets its timeout
> countdown.
>
> Does this sound correct?
>
>
>

  

Reply via email to