Benjamin Mahler created MESOS-8916:
--------------------------------------

             Summary: Allocation logic cleanup.
                 Key: MESOS-8916
                 URL: https://issues.apache.org/jira/browse/MESOS-8916
             Project: Mesos
          Issue Type: Epic
          Components: allocation
            Reporter: Benjamin Mahler


The allocation logic has grown organically and is now very hard to read and 
maintain. This epic will track cleanups to improve the readability of the core 
allocation logic:

* Add a function for returning the subset of frameworks that are capable of 
receiving offers from the agent. This moves the capability checking out of the 
core allocation logic and means the loops can just iterate over a smaller set 
of framework candidates rather than having to write 'continue' cases. This 
covers the GPU_RESOURCES and REGION_AWARE capabilities.
* Similarly, add a function that allows framework capability based filtering of 
resources. This pulls out the filtering logic from the core allocation logic 
and instead the core allocation logic can just all out to the capability 
filtering function. This covers the SHARED_RESOURCES, REVOCABLE_RESOURCES and 
RESERVATION_REFINEMENT capabilities. Note that in order to implement this one, 
we must refactor the shared resources logic in order to have the resource 
generation occur regardless of the framework capability (followed by getting 
filtered out via this new function if the framework is not capable).
* Update the scalar quantity related functions to also strip static reservation 
metadata. Currently there is extra code in the allocator across many places 
(including the allocation logic) to perform this in the call-sites.
* Track across allocation cycles or pull out the following into functions: 
quantity of quota that is currently "charged" to a role, amount of "headroom" 
that is needed/available for unsatisfied quota guarantees.
* Pull out the resource shrinking function.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to