Hi all,
I would like to start a discussion on this feature request (JIRA link).
<https://issues.apache.org/jira/browse/FLINK-16039>

Consider the events :

[1, event], [2, event]

where first element is event timestamp in seconds and second element is
event code/name.

Also consider that an Event time session window with inactivityGap = 2
seconds is acting on above stream.

When the first event arrives, a session window should be created that is
[1,1].

When the second event arrives, a new session window should be created that
is [2,2]. Since this falls within firstWindowTimestamp+inactivityGap, it
should be merged into session window [1,2] and  [2,2] should be deleted.


*This is my understanding of how session windows are created. Please
correct me if wrong.*
However, Flink does not follow such a definition of windows semantically.
If I call the  getEnd() method of the TimeWindow() class, I get back
timestamp + inactivityGap.

For the above example, after processing the first element, I would get 1 +
2 = 3 seconds as the window "end".

The actual window end should be the timestamp 1, which is the last event in
the session window.

A solution would be to change the "end" definition of all windows, but I
suppose this would be breaking and would need some debate.

Therefore, I propose an intermediate solution : add a new API method that
keeps track of the last element added in the session window.

If there is agreement on this, I would like to start drafting a change
document and implement this.

Reply via email to