Re: [DISCUSS] FLIP-220: Temporal State

2022-05-06 Thread Jingsong Li
+1 to generic interface for sorted state and Binary***State. Very happy to be able to go one step further and thank you for your discussion. Best, Jingsong On Fri, May 6, 2022 at 8:37 PM Nico Kruber wrote: > > While working a bit more on this, David A and I noticed a couple of things > that wer

Re: [DISCUSS] FLIP-220: Temporal State

2022-05-06 Thread Nico Kruber
While working a bit more on this, David A and I noticed a couple of things that were not matching each other in the proposed APIs: a) the proposed BinarySortedMultiMapState class didn't actually have getters that return multiple items per key, and b) while having a single multi-map like implemen

Re: [DISCUSS] FLIP-220: Temporal State

2022-04-29 Thread Nico Kruber
Hi all, Yun, David M, David A, and I had an offline discussion and talked through a couple of details that emerged from the discussion here. We believe, we have found a consensus on these points and would like to share our points for further feedback: Let me try to get through the points that w

Re: [DISCUSS] FLIP-220: Temporal State

2022-04-24 Thread Jiangang Liu
l > >> #tailMap > >> > > like API. I just use NavigableMap's API to show examples. > >> > > > >> > > I think we can introduce new APIs like: > >> > > > >> > > SortedMapState extends State > >> > >

Re: [DISCUSS] FLIP-220: Temporal State

2022-04-22 Thread David Morávek
record >> the >> > > > changes to any state, thus this should be included in the design >> doc as >> > > >> > > we >> > > >> > > > need to introduce another kind of state, especially you might need >> to >> > > > consider how to store key bytes

Re: [DISCUSS] FLIP-220: Temporal State

2022-04-22 Thread David Morávek
7;s the same thing the > > > Window > > > API is already using - so there's nothing special here. The order in > the > > > log > > > doesn't have to follow the natural order because this is only required > > > inside > > > the delegate

Re: [DISCUSS] FLIP-220: Temporal State

2022-04-22 Thread Nico Kruber
; > state. I > > > > > could give some examples of how to use sorted map state in min/max with > > > retract functions. > > > > > > As you know, NavigableMap in java has several APIs like: > > > Map.Entry firstEntry(); > >

Re: [DISCUSS] FLIP-220: Temporal State

2022-04-22 Thread David Morávek
zed byte arrays. > > Best > Yun Tang > > -- > *From:* Nico Kruber > *Sent:* Thursday, April 21, 2022 23:50 > *To:* dev > *Cc:* David Morávek ; Yun Tang > *Subject:* Re: [DISCUSS] FLIP-220: Temporal State > > Thanks Yun Tang for your

Re: [DISCUSS] FLIP-220: Temporal State

2022-04-22 Thread Nicholas Jiang
Hi David. Thanks for the proposal of Temporal State. I'm working for the benchmark of CEPOperator. I have question about how much performance improvement can Temporal State bring to CEPOperator and whether there is any expected performance? Best, Nicholas Jiang On 2022/04/11 12:54:15 David An

Re: [DISCUSS] FLIP-220: Temporal State

2022-04-22 Thread Yun Tang
Best Yun Tang From: Nico Kruber Sent: Thursday, April 21, 2022 23:50 To: dev Cc: David Morávek ; Yun Tang Subject: Re: [DISCUSS] FLIP-220: Temporal State Thanks Yun Tang for your clarifications. Let me keep my original structure and reply in these points... 3. Should we generalis

Re: [DISCUSS] FLIP-220: Temporal State

2022-04-21 Thread Nico Kruber
state, especially you might need to > consider how to store key bytes serialized by the new serializer (as we > might not be able to write the length in the beginning of serialized bytes > to make the order of bytes same as natural order). > Best > Yun Tang. >

Re: [DISCUSS] FLIP-220: Temporal State

2022-04-20 Thread Yun Tang
: Yun Tang ; David Morávek Subject: Re: [DISCUSS] FLIP-220: Temporal State Hi all, I have read the discussion points from the last emails and would like to add my two cents on what I believe are the remaining points to solve: 1. Do we need a TemporalValueState? I guess, this all boils down to

Re: [DISCUSS] FLIP-220: Temporal State

2022-04-19 Thread Nico Kruber
> [1] > https://github.com/apache/flink/blob/master/flink-table/flink-table-runtime > /src/main/java/org/apache/flink/table/runtime/functions/aggregate/MinWithRet > ractAggFunction.java > Best, > Yun Tang > > From: David Morávek > Sent: Wednesday, April 13, 2022

Re: [DISCUSS] FLIP-220: Temporal State

2022-04-14 Thread Yun Tang
13, 2022 19:50 To: dev Subject: Re: [DISCUSS] FLIP-220: Temporal State Here is a very naive implementation [1] from a prototype I did few months back that uses list and insertion sort. Since the list is sorted we can use binary search to create sub-list, that could leverage the same thing I'

Re: [DISCUSS] FLIP-220: Temporal State

2022-04-13 Thread David Morávek
;> >> David >> >> >> On Tue, Apr 12, 2022 at 9:21 AM Yun Tang wrote: >> >> > Hi David, >> > >> > Could you share some explanations why SortedMapState cannot work in >> > details? I just cannot catch up what the statement below mean

Re: [DISCUSS] FLIP-220: Temporal State

2022-04-13 Thread David Morávek
was rejected as being overly difficult to implement in a way that > > would cleanly leverage RocksDB’s iterators. > > > > > > Best > > Yun Tang > > ____ > > From: Aitozi > > Sent: Tuesday, April 12, 2022 15:00 > > To: dev@

Re: [DISCUSS] FLIP-220: Temporal State

2022-04-13 Thread David Anderson
icult to implement in a way that > would cleanly leverage RocksDB’s iterators. > > > Best > Yun Tang > > From: Aitozi > Sent: Tuesday, April 12, 2022 15:00 > To: dev@flink.apache.org > Subject: Re: [DISCUSS] FLIP-220: Temporal Sta

Re: [DISCUSS] FLIP-220: Temporal State

2022-04-13 Thread David Anderson
Aitozi, Our POC can be seen at [1]. My personal opinion is the namespace is an implementation detail that is better not exposed directly. Flink state is already quite complex to understand, and I fear that if we expose the namespaces the additional flexibility this offers will be more confusing t

Re: [DISCUSS] FLIP-220: Temporal State

2022-04-13 Thread David Anderson
David, thanks for the feedback, much appreciated! I'm hoping you can explain a bit more about how Iterable> readRange(long minTimestamp, long limitTimestamp); would be used (and perhaps, implemented) in practice. I worry that this might either prevent certain optimizations and/or be rather more

Re: [DISCUSS] FLIP-220: Temporal State

2022-04-12 Thread David Morávek
Hi David, I really like the proposal. This has so much potential for various optimizations, especially for temporal joins. My only concern is that the interfaces seems unnecessarily complicated. My feeling would be that we only need a single, simple interface that would fit it all (the same way a

Re: [DISCUSS] FLIP-220: Temporal State

2022-04-12 Thread Jingsong Li
Hi David, Thanks for driving. I understand that state storage itself supports byte ordering, have we considered exposing Binary**State? This way the upper layers can be implemented on demand, Temporal is just one of them. Best, Jingsong On Tue, Apr 12, 2022 at 3:01 PM Aitozi wrote: > > Hi Davi

Re: [DISCUSS] FLIP-220: Temporal State

2022-04-12 Thread Yun Tang
From: Aitozi Sent: Tuesday, April 12, 2022 15:00 To: dev@flink.apache.org Subject: Re: [DISCUSS] FLIP-220: Temporal State Hi David I have look through the doc, I think it will be a good improvement to this pattern usage, I'm interested in it. Do you have some POC work to

Re: [DISCUSS] FLIP-220: Temporal State

2022-04-12 Thread Aitozi
Hi David I have look through the doc, I think it will be a good improvement to this pattern usage, I'm interested in it. Do you have some POC work to share for a closer look. Besides, I have one question that can we support expose the namespace in the different state type not limited to `Tempo

[DISCUSS] FLIP-220: Temporal State

2022-04-11 Thread David Anderson
Greetings, Flink developers. I would like to open up a discussion of a proposal [1] to add a new kind of state to Flink. The goal here is to optimize a fairly common pattern, which is using MapState> to store lists of events associated with timestamps. This pattern is used internally in quite a