[
https://issues.apache.org/jira/browse/FLINK-11980?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Aljoscha Krettek updated FLINK-11980:
-------------------------------------
Fix Version/s: (was: 1.9.0)
> Improve efficiency of iterating KeySelectionListener on notification
> --------------------------------------------------------------------
>
> Key: FLINK-11980
> URL: https://issues.apache.org/jira/browse/FLINK-11980
> Project: Flink
> Issue Type: Improvement
> Components: Runtime / State Backends
> Affects Versions: 1.8.0
> Reporter: Stefan Richter
> Assignee: Stefan Richter
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.8.0
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> {{KeySelectionListener}} was introduced for incremental TTL state cleanup as
> a driver of the cleanup process. Listeners are notified whenever the current
> key in the backend is set (i.e. for every event). The current implementation
> of the collection that holds the listener is a {{HashSet}}, iterated via
> `forEach` on each key change. This method comes with the overhead of creating
> temporaray objects, e.g. iterators, on every invocation and even if there is
> no listener registered. We should rather use an {{ArrayList}} with for-loop
> iteration in this hot code path to i) minimize overhead and ii) minimize
> costs for the very likely case that there is no listener at all.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)