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)