[
https://issues.apache.org/jira/browse/FLINK-7008?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16066258#comment-16066258
]
ASF GitHub Bot commented on FLINK-7008:
---------------------------------------
Github user kl0u commented on a diff in the pull request:
https://github.com/apache/flink/pull/4195#discussion_r124500395
--- Diff:
flink-libraries/flink-cep/src/main/java/org/apache/flink/cep/operator/AbstractKeyedCEPPatternOperator.java
---
@@ -270,10 +270,12 @@ private void updateLastSeenWatermark(long timestamp) {
}
private void updateNFA(NFA<IN> nfa) throws IOException {
- if (nfa.isEmpty()) {
- nfaOperatorState.clear();
- } else {
- nfaOperatorState.update(nfa);
+ if (nfa.isNFAChanged()) {
+ if (nfa.isEmpty()) {
+ nfaOperatorState.clear();
+ } else {
+ nfaOperatorState.update(nfa);
--- End diff --
This is only true for the `RocksDB` state backend. If you are using the
`Heap` state backend, you do not (de)serialize at every access but you keep the
same object. So the flag should be re-set.
> Update NFA state only when the NFA changes.
> -------------------------------------------
>
> Key: FLINK-7008
> URL: https://issues.apache.org/jira/browse/FLINK-7008
> Project: Flink
> Issue Type: Improvement
> Components: CEP
> Affects Versions: 1.3.1
> Reporter: Kostas Kloudas
> Assignee: Dian Fu
> Fix For: 1.4.0
>
>
> Currently in the {{AbstractKeyedCEPPatternOperator.updateNFA()}} method we
> update the NFA state every time the NFA is touched. This leads to redundant
> puts/gets to the state when there are no changes to the NFA itself.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)