You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@flink.apache.org by Rahul Kavale <ka...@gmail.com> on 2017/05/17 10:36:33 UTC

Timer fault tolerance in Flink

I am looking at timers in apache flink and wanted to confirm if the timers
in flink are fault tolerant.

eg. when a timer registered with processFunction, of say 20 sec is running
on a node and after 15 seconds (since the timer started), the node failed
for some reason. Does flink guarantee that the timer resume on another
node? if it does resume does it consider only the remaining time for the
timer ie 5 sec in this case?

Thanks & Regards,

Rahul

Re: Timer fault tolerance in Flink

Posted by Kostas Kloudas <k....@data-artisans.com>.
Hi Rahul,

The timers are fault tolerant and their timestamp is the absolute value of when to fire.
This means that if you are at time t = 10 and you register a timer “10 ms from now”, the timer will have a firing timestamp of 20.
This is checkpointed, so the “new machine” that takes over the failed task, will have the timer with timestamp 20.

So the when the timer will fire depends on the “new machine” and it may differ from what would happen in the previous machine in the 
following cases:
	For processing time, in case your new machine (the one that takes over the failed task) has a clock that is out-of-sync with the 
previous machine that set the timer to 20.
	For event time, given that Flink does not checkpoint watermarks, the timer will fire when the watermark on the new machine surpasses 
the timer's timestamp.

I hope this helps,
Kostas

> On May 17, 2017, at 12:36 PM, Rahul Kavale <ka...@gmail.com> wrote:
> 
> I am looking at timers in apache flink and wanted to confirm if the timers in flink are fault tolerant.
> 
> eg. when a timer registered with processFunction, of say 20 sec is running on a node and after 15 seconds (since the timer started), the node failed for some reason. Does flink guarantee that the timer resume on another node? if it does resume does it consider only the remaining time for the timer ie 5 sec in this case?
> 
> Thanks & Regards,
> 
> Rahul
>