GitHub user soniclavier opened a pull request:

    https://github.com/apache/flink/pull/2736

    [FLINK-4174] Enhance evictor functionality

    The PR implements 
[FLINK-4174](https://issues.apache.org/jira/browse/FLINK-4174) Enhance window 
evictor as proposed in 
[FLIP-4](https://cwiki.apache.org/confluence/display/FLINK/FLIP-4+%3A+Enhance+Window+Evictor)
    
    Changes made:
    
    - Modified the Evictor API, added two new methods evictBefore and 
evictAfter. Removed existing evict method
    - Modified the corresponding implementations of CountEvictor, DeltaEvictor 
and TimeEvictor
    - Created EvictorContext in the class EvictingWindowOperator, which is 
passed to the evictor methods
    - Created TimestampedValue class which holds the value with corresponding 
timestamp. This class is exposed to the user via the evictBefore and evictAfter 
methods.
    - Modified EvictingWindowOperator class 
        - to call evictBefore before calling window function and evictAfter 
after calling window function.
        - create FluentIterable<TimestampedValue<IN>> from 
Iterable<StreamRecord<IN>> contents, which is passed to the evictor methods.
        - to clear the windowstate and add the remaining element(after the 
eviction) back to the state. (this fixes 
[FLINK-4369](https://issues.apache.org/jira/browse/FLINK-4369))
    - Added test cases in EvictingWindowOperatorTest.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/soniclavier/flink FLINK-4174

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/flink/pull/2736.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 #2736
    
----
commit bfd4fb509463dea0dc86e702c3aad0b0b9e70ff2
Author: Vishnu Viswanath <vishnu.viswanat...@gmail.com>
Date:   2016-10-31T23:21:04Z

    [FLINK-4174] Enhance evictor functionality

----


---
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 infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to