Yes, we dont need that method there. Snapshots are handled as a call to the
streamtask from the input reader.

On Tuesday, May 5, 2015, Aljoscha Krettek <aljos...@apache.org> wrote:

> I don't know, I just put that there because other people are working
> on the checkpointing/barrier thing. So there would need to be some
> functionality there at some point.
>
> Or maybe it is not required there and can be handled in the
> StreamTask. Others might know this better than I do right now.
>
> On Tue, May 5, 2015 at 3:24 PM, Gyula Fóra <gyula.f...@gmail.com
> <javascript:;>> wrote:
> > What would the processBarrier method do?
> >
> > On Tuesday, May 5, 2015, Aljoscha Krettek <aljos...@apache.org
> <javascript:;>> wrote:
> >
> >> I'm using the term punctuation and watermark interchangeably here
> >> because for practical purposes they do the same thing. I'm not sure
> >> what you meant with your comment about those.
> >>
> >> For the Operator interface I'm thinking about something like this:
> >>
> >> abstract class OneInputStreamOperator<IN, OUT, F extends Function>  {
> >>     public processElement(IN element);
> >>     public processBarrier(...);
> >>     public processPunctuation/lowWatermark(...):
> >> }
> >>
> >> The operator also has access to the TaskContext and ExecutionConfig
> >> and Serializers. The operator would emit values using an emit() method
> >> or the Collector interface, not sure about that yet.
> >>
> >> On Tue, May 5, 2015 at 3:12 PM, Gyula Fóra <gyf...@apache.org
> <javascript:;>
> >> <javascript:;>> wrote:
> >> > I think this a good idea in general. I would try to minimize the
> methods
> >> we
> >> > include and make the ones that we keep very concrete. For instance i
> >> would
> >> > not have the receive barrier method as that is handled on a totally
> >> > different level already. And instead of punctuation I would directly
> add
> >> a
> >> > method to work on watermarks.
> >> >
> >> > On Tuesday, May 5, 2015, Aljoscha Krettek <aljos...@apache.org
> <javascript:;>
> >> <javascript:;>> wrote:
> >> >
> >> >> What do you mean by "losing iterations"?
> >> >>
> >> >> For the pros and cons:
> >> >>
> >> >> Cons: I can't think of any, since most of the operators are chainable
> >> >> already and already behave like a collector.
> >> >>
> >> >> Pros:
> >> >>  - Unified model for operators, chainable operators don't have to
> >> >> worry about input iterators and the collect interface.
> >> >>  - Enables features that we want in the future, such as barriers and
> >> >> punctuations because they don't work with the
> >> >>    simple Collector interface.
> >> >>  - The while-loop is moved outside of the operators, now the Task
> (the
> >> >> thing that runs Operators) can control the flow of data better and
> >> >> deal with
> >> >>    stuff like barriers and punctuations. If we want to keep the
> >> >> main-loop inside each operator, then they all have to manage input
> >> >> readers and inline events manually.
> >> >>
> >> >> On Tue, May 5, 2015 at 2:41 PM, Kostas Tzoumas <ktzou...@apache.org
> <javascript:;>
> >> <javascript:;>
> >> >> <javascript:;>> wrote:
> >> >> > Can you give us a rough idea of the pros and cons? Do we lose some
> >> >> > functionality by getting rid of iterations?
> >> >> >
> >> >> > Kostas
> >> >> >
> >> >> > On Tue, May 5, 2015 at 1:37 PM, Aljoscha Krettek <
> aljos...@apache.org <javascript:;>
> >> <javascript:;>
> >> >> <javascript:;>>
> >> >> > wrote:
> >> >> >
> >> >> >> Hi Folks,
> >> >> >> while working on introducing source-assigned timestamps into
> >> streaming
> >> >> >> (https://issues.apache.org/jira/browse/FLINK-1967) I thought
> about
> >> how
> >> >> >> the punctuations (low watermarks) can be pushed through the
> system.
> >> >> >> The problem is, that operators can have two ways of getting
> input: 1.
> >> >> >> They read directly from input iterators, and 2. They act as a
> >> >> >> Collector and get elements via collect() from the previous
> operator
> >> in
> >> >> >> a chain.
> >> >> >>
> >> >> >> This makes it hard to push things through a chain that are not
> >> >> >> elements, such as barriers and/or punctuations.
> >> >> >>
> >> >> >> I propose to change all streaming operators to be push based,
> with a
> >> >> >> slightly improved interface: In addition to collect(), which I
> would
> >> >> >> call receiveElement() I would add receivePunctuation() and
> >> >> >> receiveBarrier(). The first operator in the chain would also get
> data
> >> >> >> from the outside invokable that reads from the input iterator and
> >> >> >> calls receiveElement() for the first operator in a chain.
> >> >> >>
> >> >> >> What do you think? I would of course be willing to implement this
> >> >> myself.
> >> >> >>
> >> >> >> Cheers,
> >> >> >> Aljoscha
> >> >> >>
> >> >>
> >>
>

Reply via email to