[
https://issues.apache.org/jira/browse/FLINK-6983?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16066183#comment-16066183
]
ASF GitHub Bot commented on FLINK-6983:
---------------------------------------
Github user kl0u commented on the issue:
https://github.com/apache/flink/pull/4172
@dianfu So this is a plan that can work to avoid having to generate the
code of the `IterativeCondition` every time. This came also after discussion
with @fhueske who also explained me how things are done in the SQL part. So
here we go:
1) You will start with a String which contains the user's query.
2) You analyze the query and generate the code that corresponds to the
`IterativeCondition`.
2i) The code goes into a `Wrapper` class, which extends the
`IterativeCondition` and keeps only 2 `String`s: the code of the condition and
a unique name for the condition.
2ii) This `Wrapper`s is passed to the `Pattern` and the `CEPOperator`.
**THE JOB IS SUBMITTED**
3) At the `open()`, the `CEPOperator` checks the states if they have actual
`IterativeConditions` or `Wrapper` (which is a subclass of the
`IterativeCondition`), and if yes:
3i) it gets the name and the code and compiles the code to an actual
`IterativeCondition`, which is then stored instead of the `Wrapper`.
This way we have to compile only once, at the `open()` of the operator, and
not every time.
What do you think?
> Do not serialize States with NFA
> --------------------------------
>
> Key: FLINK-6983
> URL: https://issues.apache.org/jira/browse/FLINK-6983
> Project: Flink
> Issue Type: Improvement
> Components: CEP
> Reporter: Dawid Wysakowicz
> Assignee: Dian Fu
>
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)