Ah Thanks Bobby! That was the piece I was missing then.
On Mon, Nov 16, 2015 at 10:24 PM, Bobby Evans <ev...@yahoo-inc.com.invalid> 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 > <spo...@salesforce.com> 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? > > >