Hi,

I am implementing a merge-able trigger, and having a problem in clearing
the registered timers for a merged window (a window has been merged into
the merging result). For my implementation, the trigger registers multiple
timers for each element at Trigger#onElement(). State is used to keep track
of the registered event time, so that timer can be removed at
Trigger#clear() later.

However, clearing the registered timers in this way doesn't work if the
window has been merged. The state of origin window is removed during
merging. Method AbstractHeapMergingState#mergeNamespaces() removes the
state of merged window. I think the ContinuousEventTimeTrigger shipped with
flink would have same issue.

My question is is there a way to keep the state for a merged window? One
way I can think of is to implement a custom heap state that add the state
back in AbstractHeapMergingState#mergeState() method. Or is there a way to
clear the timers without using state? Can I twist the internal timer's
source code to expose a method to remove all timers for a specified window?

Please advise and thank you for your help.

Best
Yan

Reply via email to