Hi,

Sorry - I made a mistake - I was thinking of getting access to the collection 
(mist-read :) collector) of events in the window buffer  in order to be able to 
delete/evict some of them which are not necessary the last ones.


Radu

-----Original Message-----
From: Aljoscha Krettek [mailto:aljos...@apache.org] 
Sent: Monday, July 18, 2016 5:54 PM
To: dev@flink.apache.org
Subject: Re: [DISCUSS] FLIP-2 Extending Window Function Metadata

What about the collector? This is only used for emitting elements to the 
downstream operation.

On Mon, 18 Jul 2016 at 17:52 Radu Tudoran <radu.tudo...@huawei.com> wrote:

> Hi,
>
> I think it looks good and most importantly is that we can extend it in 
> the directions discussed so far.
>
> One question though regarding the Collector - are we going to be able 
> to delete random elements from the list if this is not exposed as a 
> collection, at least to the evictor? If not, how are we going to 
> extend in the future to cover this case?
>
> Regarding the ordering - I also observed that there are situations 
> where elements do not have a logical order. One example is if you have 
> high rates of the events. Nevertheless, even if now is not the time 
> for this, I think in the future we can imagine having also some data 
> structures that offer some ordering. It can save some computation 
> efforts later in the functions for some use cases.
>
>
> Best regards,
>
>
> -----Original Message-----
> From: Aljoscha Krettek [mailto:aljos...@apache.org]
> Sent: Monday, July 18, 2016 3:45 PM
> To: dev@flink.apache.org
> Subject: Re: [DISCUSS] FLIP-2 Extending Window Function Metadata
>
> I incorporated the changes. The proposed interface of 
> ProcessWindowFunction is now this:
>
> public abstract class ProcessWindowFunction <IN, OUT, KEY, W extends
> Window> implements Function {
>
>     public abstract void process(KEY key, Iterable<IN> elements, 
> Context
> ctx) throws Exception;
>
>     public abstract class Context {
>         public abstract W window();
>         public abstract void output(OUT value);
>     }
> }
>
> I'm proposing to not expose Collector anymore because it has the 
> close() method that should not be called by users. Having the output() 
> call directly on the context should work just as well.
>
> Also, I marked the "adding a firing reason" and "adding firing 
> counter" as future work that are only examples of stuff that can be 
> implemented on top of the new interface. Initially, this will provide 
> exactly the same features as the old API but be extensible. I did this 
> to not make the scope of this proposal to big because Radu also 
> suggested more changes and each of them should be covered in a separate 
> design doc or FLIP.
>
> @Radu: On the different buffer types. I think this would be very tricky.
> Right now, people should also not rely on the fact that elements are 
> "FIFO". Some state backends might keep the elements in a different 
> order and when you have merging windows/session windows the order of 
> the elements will also not be preserved.
>
> Cheers,
> Aljoscha
>
> On Wed, 13 Jul 2016 at 18:40 Radu Tudoran <radu.tudo...@huawei.com> wrote:
>
> > Hi,
> >
> > If it is to extend the Context to pass more information between the 
> > stages of processing a window (triggering -> process -> eviction), 
> > why not adding also a "EvictionInfo"? I think this might actually 
> > help with the issues discussed in the tread related to the eviction policy.
> > I could imagine using this parameter to pass the conditions, from 
> > the processing stage to the evictor, about what events to be eliminated.
> >
> >
> >
> >
> > public abstract class Context {
> >
> >    public abstract EvictionInfo evictionInfo();
> >
> > ...
> >
> >
> >    public abstract KEY key();
> >
> >    public abstract W window();
> >
> >    public abstract int id();
> >
> >    public abstract FiringInfo firingInfo();
> >
> >    public abstract Iterable<IN> elements();
> >
> >    public abstract void output(OUT value);
> >
> > }
> >
> >
> > Also on a slightly unrelated issue - how hard it would be to 
> > introduce different types of buffers for the windows. Currently the 
> > existing one is behaving (when under processing) similar with a FIFO 
> > queue (in the sense that you need to start from beginning, from the oldest 
> > element).
> > How about enabling for example also LIFO behavior (start iterating 
> > through the list from the most recent element). As in the source 
> > queues or stacks are not actually used, perhaps we can just pass 
> > policies to the iterator - or have custom itrators
> >
> >
> >
> >
> >
> >
> > Dr. Radu Tudoran
> > Research Engineer - Big Data Expert
> > IT R&D Division
> >
> >
> > HUAWEI TECHNOLOGIES Duesseldorf GmbH European Research Center 
> > Riesstrasse 25, 80992 München
> >
> > E-mail: radu.tudo...@huawei.com
> > Mobile: +49 15209084330
> > Telephone: +49 891588344173
> >
> > HUAWEI TECHNOLOGIES Duesseldorf GmbH Hansaallee 205, 40549 
> > Düsseldorf, Germany, www.huawei.com Registered
> > Office: Düsseldorf, Register Court Düsseldorf, HRB 56063, Managing
> > Director: Bo PENG, Wanzhou MENG, Lifang CHEN Sitz der Gesellschaft:
> > Düsseldorf, Amtsgericht Düsseldorf, HRB 56063,
> > Geschäftsführer: Bo PENG, Wanzhou MENG, Lifang CHEN This e-mail and 
> > its attachments contain confidential information from HUAWEI, which 
> > is intended only for the person or entity whose address is listed above.
> > Any use of the information contained herein in any way (including, 
> > but not limited to, total or partial disclosure, reproduction, or
> > dissemination) by persons other than the intended recipient(s) is 
> > prohibited. If you receive this e-mail in error, please notify the 
> > sender by phone or email immediately and delete it!
> >
> >
> > -----Original Message-----
> > From: Aljoscha Krettek [mailto:aljos...@apache.org]
> > Sent: Wednesday, July 13, 2016 2:24 PM
> > To: dev@flink.apache.org
> > Subject: Re: [DISCUSS] FLIP-2 Extending Window Function Metadata
> >
> > Sure, I also thought about this but went for the "extreme" initially.
> > If no-one objects I'll update the doc in a bit.
> >
> > On Wed, 13 Jul 2016 at 14:17 Stephan Ewen <se...@apache.org> wrote:
> >
> > > Thanks for opening this.
> > >
> > > I see the need for having an extensible context object for window 
> > > function invocations, but i think hiding every parameter in the 
> > > context is a bit unnatural.
> > >
> > > How about having a function "apply(Key, Values, WindowContext,
> > Collector)"
> > > ?
> > > It should be possible to write the straightforward use cases 
> > > without accessing the context object.
> > >
> > >
> > >
> > > On Wed, Jul 13, 2016 at 1:56 PM, Aljoscha Krettek 
> > > <aljos...@apache.org>
> > > wrote:
> > >
> > > > Hi,
> > > > this is a proposal to introduce a new interface for the window 
> > > > function
> > > to
> > > > make it more extensible for the future where we might want to 
> > > > provide additional information about why a window fired to the 
> > > > user
> > function:
> > > >
> > > >
> > > >
> > > https://cwiki.apache.org/confluence/display/FLINK/FLIP-2+Extending
> > > +W
> > > in
> > > dow+Function+Metadata
> > > >
> > > > I'd appreciate your thoughts!
> > > >
> > > > Cheers,
> > > > Aljoscha
> > > >
> > >
> >
>

Reply via email to