[
https://issues.apache.org/jira/browse/FLINK-15160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17328809#comment-17328809
]
Jiayi Liao commented on FLINK-15160:
------------------------------------
We've met the problem recently. To solve this, we create a new parameter called
"key's ttl" and maintain {{lastUpdateTimestamp}} in {{CepOperator}}, whenever
an element arrives we create a new timer(current timestamp + key's ttl) to
clear all the states and remove the old timer.
> Clean up is not applied if there are no incoming events for a key.
> ------------------------------------------------------------------
>
> Key: FLINK-15160
> URL: https://issues.apache.org/jira/browse/FLINK-15160
> Project: Flink
> Issue Type: Bug
> Components: Library / CEP
> Affects Versions: 1.8.2, 1.9.1, 1.10.0
> Reporter: Dawid Wysakowicz
> Priority: Major
> Labels: stale-major
>
> In CepOperator the pruning of timed out partial matches happens along with
> feeding events into the NFA. Either when unbuffering on Watermark or
> according to the processing time.
> 1. Processing time
> The state is pruned only with the timestamps of incoming events. If there are
> no incoming events no pruning happens
> 2. Event time
> It is slightly more complicated, but the outcome is similar. We register
> timers that pop events from the buffer, but we do not register any timers for
> when the timeout of a partial match could happen. Therefore if there will be
> no more events we will never prune matches.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)