Chesnay Schepler created FLINK-19715:
----------------------------------------
Summary: Optimize re-assignment of excess resources
Key: FLINK-19715
URL:
https://issues.apache.org/jira/browse/FLINK-19715 Project: Flink
Issue Type: Sub-task
Components: Runtime / Coordination
Reporter: Chesnay Schepler
Fix For: 1.13.0
The {{JobScopedResourceTracker}} tracks acquired resources that exceed the jobs requirements as {{excess}} resources.
Whenever the requirements increase, or a (non-excess) resource was lost, we try to assign any excess resources we have to fill either fulfill the requirements of fill in the lost resource.
This re-assignment is currently implemented by doing a full copy of map containing the excess resources, and going through the usual code path for acquired resources.
This is fine in terms of correctness (although it can cause misleading log messages), but in the worst case, where we cannot re-assign any excess resources, we not only rebuild the original map in the process, but also potentially iterate over every outstanding requirement for every excess slot.
We should optimize this step by iterating over the excess resource map once, removing items on-demand and aborting early for a given excess resource profile if no matching requirement could be found.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)