[ 
https://issues.apache.org/jira/browse/FLINK-17099?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jark Wu reassigned FLINK-17099:
-------------------------------

    Assignee: dalongliu

> Refactoring State TTL solution in Group Agg、TopN operator, etc replace Timer 
> with StateTtlConfig
> ------------------------------------------------------------------------------------------------
>
>                 Key: FLINK-17099
>                 URL: https://issues.apache.org/jira/browse/FLINK-17099
>             Project: Flink
>          Issue Type: Improvement
>          Components: Table SQL / Runtime
>    Affects Versions: 1.9.0, 1.10.0
>            Reporter: dalongliu
>            Assignee: dalongliu
>            Priority: Major
>             Fix For: 1.11.0
>
>
> At the moment, there are 2 ways to cleanup states.
> 1) registering a processing-time timer, and cleanup entries when the timer is 
> callback.
>  - pros: can cleanup multiple states at the same time (state consistent)
>  - cons: timer space depends on the key size, which may lead to OOM (heap 
> timer).
>  - used in Group Aggregation, Over Aggregation, TopN
> 2) using the {{StateTtlConfig}} provided by DataStream [1].
>  - pros: decouple the logic of state ttl with the record processing, easy to 
> program (take a look at old planner NonWindowJoin which bundles ttl timestamp 
> with records in MapState).
>  - cons: can't cleanup multiple states at the same time.
>  - useed in Sream-Stream Joins.
> For timer solution, although it can cleanup multiple states at the same time, 
> but it also will lead to OOM when there have a great many state keys, 
> besides, StateTtlConfig is used in stream-stream join case, and will be used 
> in more operator. Therefore,in order to unify the state ttl solution, 
> simplify the code implemention, and improve the readability of codes, so we 
> should refactor state cleanup way which use StateTtlConfig to replace 
> processing-time timer in Group Aggregation、Over Aggregation、TopN operator, 
> etc.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to