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)

Reply via email to