GitHub user aljoscha opened a pull request:
https://github.com/apache/flink/pull/1460
[FLINK-3174] Add merging WindowAssigner
After triggering and before emitting the window contents the window
assigner is given the change to merge existing windows. The trigger is
then given a chance to react in the new Trigger.onMerge() call.
This adds new method WindowAssigner.isMerging() that allows window
assigners to specify whether they can merge windows. All existing
assigners are now derived from NonMergingWindowAssigner that returns
false for isMerging(). Only of a WindowAssigners announces that it can
merge is the more costly merging logic used in the WindowOperator.
For triggers there is new method Trigger.onMerge() that notifies the
trigger of the new merged window as well as the old windows and old
trigger contexts. This allows the trigger to set a timer for the newly
merged window.
This enables proper support for session windows.
This also adds the SessionWindows window assigner and adapts an existing
session example and adds test cases.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/aljoscha/flink window-sessions
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/flink/pull/1460.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #1460
----
commit dd87f6bc6ecc70d5ee2850ba0a954efdfda74db2
Author: Aljoscha Krettek <[email protected]>
Date: 2015-12-15T16:37:48Z
[FLINK-3174] Add merging WindowAssigner
After triggering and before emitting the window contents the window
assigner is given the change to merge existing windows. The trigger is
then given a chance to react in the new Trigger.onMerge() call.
This adds new method WindowAssigner.isMerging() that allows window
assigners to specify whether they can merge windows. All existing
assigners are now derived from NonMergingWindowAssigner that returns
false for isMerging(). Only of a WindowAssigners announces that it can
merge is the more costly merging logic used in the WindowOperator.
For triggers there is new method Trigger.onMerge() that notifies the
trigger of the new merged window as well as the old windows and old
trigger contexts. This allows the trigger to set a timer for the newly
merged window.
This enables proper support for session windows.
This also adds the SessionWindows window assigner and adapts an existing
session example and adds test cases.
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---