[ 
https://issues.apache.org/jira/browse/FLINK-9588?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16520411#comment-16520411
 ] 

ASF GitHub Bot commented on FLINK-9588:
---------------------------------------

Github user dawidwys commented on a diff in the pull request:

    https://github.com/apache/flink/pull/6168#discussion_r197461704
  
    --- Diff: 
flink-libraries/flink-cep/src/main/java/org/apache/flink/cep/nfa/NFA.java ---
    @@ -609,7 +611,7 @@ public void close() throws Exception {
                                                        startTimestamp);
     
                                        //check if newly created state is 
optional (have a PROCEED path to Final state)
    -                                   final State<T> finalState = 
findFinalStateAfterProceed(sharedBuffer, nextState, event.getEvent(), 
computationState);
    +                                   final State<T> finalState = 
findFinalStateAfterProceed(new ConditionContext<>(this, sharedBuffer, 
computationState), nextState, event.getEvent());
    --- End diff --
    
    Yes that is true the shared buffer might change but only "after" the CS. I 
mean those changes can't affect partial match for current Computation State. 
Therefore I would suggest to remove the flag completely and just keep the lazy 
evaluation of `matchedEvents` in `ConditionContext` by comparing it to null:
    
        if (matchedEvents == null) {
                this.matchedEvents = nfa.extractCurrentMatches(sharedBuffer, 
computationState);
        }



> Reuse the same conditionContext with in a same computationState
> ---------------------------------------------------------------
>
>                 Key: FLINK-9588
>                 URL: https://issues.apache.org/jira/browse/FLINK-9588
>             Project: Flink
>          Issue Type: Improvement
>          Components: CEP
>            Reporter: aitozi
>            Assignee: aitozi
>            Priority: Major
>              Labels: pull-request-available
>
> Now cep checkFilterCondition with a newly created Conditioncontext for each 
> edge, which will result in the repeatable getEventsForPattern because of the 
> different Conditioncontext Object.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to