Stefan Richter created FLINK-11980:
--------------------------------------
Summary: 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
{{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)