Thanks Gaurav, that helps.

-Bhupesh

On Mon, Nov 9, 2015 at 1:57 PM, Gaurav Gupta <gau...@datatorrent.com> wrote:

> Bhupesh,
>
> Platform supports sliding window feature natively. You can refer to
> SLIDE_BY_WINDOW_COUNT attribute (
> https://github.com/apache/incubator-apex-core/blob/master/api/src/main/java/com/datatorrent/api/Context.java
> <
> https://github.com/apache/incubator-apex-core/blob/master/api/src/main/java/com/datatorrent/api/Context.java>)
> and you can also look at SliderTest
> https://github.com/apache/incubator-apex-core/blob/master/engine/src/test/java/com/datatorrent/stram/engine/SliderTest.java
>
> Thanks
> - Gaurav
>
> > On Nov 9, 2015, at 12:00 AM, Bhupesh Chawda <bhup...@datatorrent.com>
> wrote:
> >
> > Yes, it will be reset in the endWindow call. So nothing should be needed
> to
> > be done explicitly.
> > Also, after the crash, the operator is restored to the checkpoint which
> had
> > happened after beginWindow but before endWindow. In this case the
> > beginWindow() call will be skipped when the operator restarts after
> > recovery.
> > It is easy to wrongly assume (which I did) that checkpoints always happen
> > "after endWindow" (in which case, the variable can be made transient).
> >
> > I also had a concern regarding *sliding application windows*. It is not
> > clear as to how the beginWindow and endWindow calls would be structured.
> In
> > addition to the application window size, we would also need some *delta*
> > which is the amount by which the window would "slide" by. How is this
> > specified? Is this per tuple? Also how would checkpointing and recovery
> act
> > in such a case?
> >
> > Thanks.
> > Bhupesh
> >
> > On Mon, Nov 9, 2015 at 12:39 PM, Milind Barve <mili...@gmail.com> wrote:
> >
> >> You might want to initialize it in beginwidow() as well. Should keep it
> non
> >> transient so for recovery.
> >> On Nov 9, 2015 12:34 PM, "Amol Kekre" <a...@datatorrent.com> wrote:
> >>
> >>> Bhupesh.
> >>> I would recommend reseting the variable in endWindow call and leaving
> it
> >>> non-transient. Usually an empty variable should not add too much to
> >>> serialization.
> >>>
> >>> Thks,
> >>> Amol
> >>>
> >>>
> >>> On Sun, Nov 8, 2015 at 10:57 PM, Bhupesh Chawda <
> bhup...@datatorrent.com
> >>>
> >>> wrote:
> >>>
> >>>> Hi All,
> >>>>
> >>>> I have a question regarding maintaining state of a variable within a
> >>> single
> >>>> application window.
> >>>> If I have a variable which is just needed for a single application
> >> window
> >>>> (just between beginWindow and endWindow calls), do I need to serialize
> >>> and
> >>>> checkpoint it? or can I make it transient?
> >>>>
> >>>> I understand that in case of checkpoint windows being aligned with the
> >>>> application windows, we can do so. Since in this case, the variable
> >> will
> >>>> start afresh immediately after the checkpoint. However in case of
> >>>> checkpoints happening in between application windows, this might not
> be
> >>> the
> >>>> case.
> >>>>
> >>>> In the second case, is there any mechanism using which I can
> >>> conditionally
> >>>> make it transient and non-transient based on when the checkpoints
> >> happen
> >>>> with respect to the application windows?
> >>>>
> >>>> Thanks.
> >>>> Bhupesh
> >>>>
> >>>
> >>
>
>

Reply via email to