Hi Nirmalya,

the CountTrigger always works together with the CountEvictor which will
make sure that only count elements are kept in the window. Evictors can
evict elements from the window after the trigger event. That is the reason
why the CountTrigger does not have to purge the window explicitly.

Cheers,
Till
​

On Wed, Feb 3, 2016 at 2:36 AM, Nirmalya Sengupta <
sengupta.nirma...@gmail.com> wrote:

> Hello all,
>
> Here's a code comment from
> org.apache.flink.streaming.api.windowing.triggers.Trigger:
>
> /**
>          * Result type for trigger methods. This determines what happens
> which the window.
>          *
>          * <p>
>          * On {@code FIRE} the pane is evaluated and results are emitted. *The
> contents of the window*
>          * *are kept*. {@code FIRE_AND_PURGE} acts like {@code FIRE} but
> the contents of the pane
>          * are purged. On {@code CONTINUE} nothing happens, processing
> continues. On {@code PURGE}
>          * the contents of the window are discarded and now result is
> emitted for the window.
> */
>
> And, here's the code snippet from
> org.apache.flink.streaming.api.windowing.triggers.CountTrigger:
>
> @Override
>         public TriggerResult onElement(Object element, long timestamp, W
> window, TriggerContext ctx) throws IOException {
>                 OperatorState<Long> count = ctx.getKeyValueState("count",
> 0L);
>                 long currentCount = count.value() + 1;
>                 count.update(currentCount);
>                 if (currentCount >= maxCount) {
>                         count.update(0L);
>                         return TriggerResult.FIRE;
>                 }
>                 return TriggerResult.CONTINUE;
>         }
>
>
> Following the code-comment, I understand that elements are *not* *PURGE*d
> from a CountWindow, only *FIRE*d. The contents on the Window stay
> *forever*.
>
> Now, that is counter-intuitive to me. Something is not right about this.
>
> What am I missing? Help me to plug the holes in my understanding.
>
> -- Nirmalya
>
> --
> Software Technologist
> http://www.linkedin.com/in/nirmalyasengupta
> "If you have built castles in the air, your work need not be lost. That is
> where they should be.
> Now put the foundation under them."
>

Reply via email to