So, would it be a reasonable solution to just modify the WindowUtils.isParallelPolicy() method to return false in case of "eviction instanceof CountEvictionPolicy && trigger instanceof TimeTriggerPolicy" ?
2015-04-30 12:21 GMT+02:00 Gyula Fóra <gyula.f...@gmail.com>: > I'm referring to Peter's problem. If we just create more count discretizers > it doesn't really break the semantics given the network guarantees but it > is not very intuitive. > > On Thursday, April 30, 2015, Aljoscha Krettek <aljos...@apache.org> wrote: > > > @Gyula: Are you referring to the pre-aggregator or the thing Peter > > mentioned? > > > > On Thu, Apr 30, 2015 at 11:12 AM, Gyula Fóra <gyula.f...@gmail.com > > <javascript:;>> wrote: > > > The problem is in the WindowUtils.isParallel policy method. It makes > > count > > > policies automatically parallel as well. > > > > > > On Thursday, April 30, 2015, Aljoscha Krettek <aljos...@apache.org > > <javascript:;>> wrote: > > > > > >> Hi, > > >> no, I think the two are unrelated. But that's another problem we need > > >> to tackle then. > > >> > > >> Cheers, > > >> Aljoscha > > >> > > >> On Thu, Apr 30, 2015 at 9:15 AM, Szabó Péter < > nemderogator...@gmail.com > > <javascript:;> > > >> <javascript:;>> wrote: > > >> > Hey, > > >> > > > >> > our intern, Pablo pointed out that there is some problem with mixed > > >> > windowing policies. When you write > > >> > ... > > >> > .window(Count ...) > > >> > .every(Time ...) > > >> > .mapWindow(...) > > >> > ... > > >> > > > >> > The result makes no sense, as the window is not of the specified > > length. > > >> > Maybe, there is some conflict between Time and Count logic. Is this > a > > >> > related problem to yours? > > >> > > > >> > Peter > > >> > > > >> > 2015-04-29 21:15 GMT+02:00 Aljoscha Krettek <aljos...@apache.org > > <javascript:;> > > >> <javascript:;>>: > > >> > > > >> >> I am on it, yes. :D > > >> >> On Apr 29, 2015 8:31 PM, "Gyula Fóra" <gyf...@apache.org > > <javascript:;> <javascript:;>> > > >> wrote: > > >> >> > > >> >> > Hey, > > >> >> > You are right, so there seems to be some error in the logic that > > >> checks > > >> >> for > > >> >> > the end of the slide. > > >> >> > I checked the count pre-reducer and the error there is clear, but > > if I > > >> >> fix > > >> >> > it it breaks some tests so I think some other stuff must not work > > >> >> properly > > >> >> > either. > > >> >> > > > >> >> > I cannot work on this until I get back from holiday, it would be > > good > > >> if > > >> >> > you could look into it. > > >> >> > > > >> >> > Cheers, > > >> >> > Gyula > > >> >> > > > >> >> > On Wed, Apr 29, 2015 at 7:09 PM, Aljoscha Krettek < > > >> aljos...@apache.org <javascript:;> <javascript:;>> > > >> >> > wrote: > > >> >> > > > >> >> > > Oh, I saw them, but in updateCurrent() (both grouped and > > >> non-grouped) > > >> >> > > the else path is never taken when I run the windowed WordCount > > >> >> > > example. > > >> >> > > > > >> >> > > I have a branch where I just throw a RuntimeException in the > else > > >> >> > > branches and the whole things still works: mvn verify doesn't > > fail, > > >> >> > > the examples still run. When looking at the behaviour of the > > >> >> > > functions, it seems clear to me that the else path can never be > > >> taken. > > >> >> > > > > >> >> > > On Wed, Apr 29, 2015 at 6:15 PM, Gyula Fóra <gyf...@apache.org > > <javascript:;> > > >> <javascript:;>> wrote: > > >> >> > > > Hey, > > >> >> > > > > > >> >> > > > They actually work :P Although I have to admit I need to do > > some > > >> >> > > > refactoring of the method names and parameters. > > >> >> > > > > > >> >> > > > I made some quick refactoring and added some comments for the > > key > > >> >> > > methods: > > >> >> > > > > > >> >> > > > > > >> >> > > > > >> >> > > > >> >> > > >> > > > https://github.com/mbalassi/flink/blob/dfa028ce5102b1f0d098eaec6c4b4d3744bee379/flink-staging/flink-streaming/flink-streaming-core/src/main/java/org/apache/flink/streaming/api/windowing/windowbuffer/SlidingPreReducer.java#L96 > > >> >> > > > > > >> >> > > > > > >> >> > > > > >> >> > > > >> >> > > >> > > > https://github.com/mbalassi/flink/blob/dfa028ce5102b1f0d098eaec6c4b4d3744bee379/flink-staging/flink-streaming/flink-streaming-core/src/main/java/org/apache/flink/streaming/api/windowing/windowbuffer/SlidingPreReducer.java#L105 > > >> >> > > > > > >> >> > > > > > >> >> > > > > >> >> > > > >> >> > > >> > > > https://github.com/mbalassi/flink/blob/dfa028ce5102b1f0d098eaec6c4b4d3744bee379/flink-staging/flink-streaming/flink-streaming-core/src/main/java/org/apache/flink/streaming/api/windowing/windowbuffer/SlidingPreReducer.java#L132 > > >> >> > > > > > >> >> > > > Those three parts contain the key logic, and now the method > > names > > >> >> > should > > >> >> > > > make more sense as well :) > > >> >> > > > > > >> >> > > > Cheers, > > >> >> > > > Gyula > > >> >> > > > > > >> >> > > > > > >> >> > > > > > >> >> > > > > > >> >> > > > > > >> >> > > > On Wed, Apr 29, 2015 at 4:44 PM, Aljoscha Krettek < > > >> >> aljos...@apache.org <javascript:;> <javascript:;> > > >> >> > > > > >> >> > > > wrote: > > >> >> > > > > > >> >> > > >> Hi, > > >> >> > > >> one of my notorious (by now) investigative questions: How do > > >> these > > >> >> > > >> work? To meet it seems that they do not perform any actual > pre > > >> >> > > >> aggregation but just keep all the elements in a LinkedList > > >> >> > > >> (non-grouped case) or HashMap (grouped-case) and aggregate > the > > >> >> > > >> elements when the window is to be emitted. > > >> >> > > >> > > >> >> > > >> Am I missing something again? :D > > >> >> > > >> > > >> >> > > >> Cheers, > > >> >> > > >> Aljoscha > > >> >> > > >> > > >> >> > > > > >> >> > > > >> >> > > >> > > >