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)

Reply via email to