Hi.

AFAIK, Spout sets up timer to emit tick tuples each
TOPOLOGY-TICK-TUPLE-FREQ-SECS.
(Please refer setup-ticks!)

Spout changes TOPOLOGY-TICK-TUPLE-FREQ-SECS to
TOPOLOGY-MESSAGEE-TIMEOUT-SECS for the first time, so timer is scheduled to
each TOPOLOGY-MESSAGE-TIMEOUT-SECS.
(Please refer add-acker!)

When Spout receives tick tuple, it calls pending.rotate(). Its size is 2,
so actual tuple expiration time is between TOPOLOGY-MESSAGE-TIMEOUT-SECS
and (2 * TOPOLOGY-MESSAGE-TIMEOUT-SECS).
(Please refer mk-threads :spout)

Hope this helps.

Thanks!
Jungtaek Lim (HeartSaVioR)


2015-05-21 12:40 GMT+09:00 Srividhya Shanmugam <[email protected]>
:

>  Hi,
>
>
>
> I have been reading through code and online to find how and where exactly
> a tuple gets timed out and therefore the spout’s fail method is invoked. As
> I look through the executor.clj class, a RotatingMap is always associated
> with a Spout. This is where the emitted tuples pending ack are stored.
>
>
>
> Every time the RotatingMap’s rotate() method is called, it invokes the
> passed in ExpiryCallback implementation to notify the expired tuple.
>
>
>
> What I am trying to understand is who calls the rotate() method?
>
> I also see a put method in the RotatingMap – I am guessing this is invoked
> when the Spout emits a new tuple.
>
>
>
> Is my understanding correct?
>
>
>
> Thank you very much,
>
> Srividhya
>
> This email and any files transmitted with it are confidential, proprietary
> and intended solely for the individual or entity to whom they are
> addressed. If you have received this email in error please delete it
> immediately.
>



-- 
Name : 임 정택
Blog : http://www.heartsavior.net / http://dev.heartsavior.net
Twitter : http://twitter.com/heartsavior
LinkedIn : http://www.linkedin.com/in/heartsavior

Reply via email to