Evicting elements in EventTimeSessionWindow

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Evicting elements in EventTimeSessionWindow

Fritz Budiyanto
Hi All,

How do I evict elements from EventTimeSessionWindow ?

My use case as follow: I have a long duration session window, and I’d like to do some processing on every minute and perform regular sink. I use ContinuousEventTimeTrigger to do the job, as the session could last for hours (or even days) where large number of new elements kept on coming in.

I’d like to evict these elements which I already processed from the previous trigger. Evicting elements is necessary for us to release unused large number of elements which already processed in the previous trigger, and also we don’t want to continuously processing these elements over and over again through out the continuous trigger. I tried to set evictor, but it is not allowed for MergingWindow type.

Any thought, comments, or suggestions ?

Thanks,


Fritz

Reply | Threaded
Open this post in threaded view
|

Re: Evicting elements in EventTimeSessionWindow

Aljoscha Krettek
Hi Fritz,
this seems to be a bug caused by some leftover (overeager) check. The EvictingWindowOperator in fact has the code to deal with merging windows.

I opened this issue to track the bug: https://issues.apache.org/jira/browse/FLINK-5933.

As a workaround, you can use a purging Trigger. You can turn any trigger into a purging trigger using PurgingTrigger.of(<my trigger>). When you do this, the window contents will be cleaned after every window firing.

Best,
Aljoscha

On Mon, 27 Feb 2017 at 19:12 Fritz Budiyanto <[hidden email]> wrote:
Hi All,

How do I evict elements from EventTimeSessionWindow ?

My use case as follow: I have a long duration session window, and I’d like to do some processing on every minute and perform regular sink. I use ContinuousEventTimeTrigger to do the job, as the session could last for hours (or even days) where large number of new elements kept on coming in.

I’d like to evict these elements which I already processed from the previous trigger. Evicting elements is necessary for us to release unused large number of elements which already processed in the previous trigger, and also we don’t want to continuously processing these elements over and over again through out the continuous trigger. I tried to set evictor, but it is not allowed for MergingWindow type.

Any thought, comments, or suggestions ?

Thanks,


Fritz