[ https://issues.apache.org/jira/browse/MESOS-4441?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael Park updated MESOS-4441: -------------------------------- Target Version/s: (was: 0.27.0) > Do not allocate non-revocable resources beyond quota guarantee. > --------------------------------------------------------------- > > Key: MESOS-4441 > URL: https://issues.apache.org/jira/browse/MESOS-4441 > Project: Mesos > Issue Type: Improvement > Components: allocation > Reporter: Alexander Rukletsov > Assignee: Michael Park > Priority: Blocker > Labels: mesosphere > > h4. Status Quo > Currently resources allocated to frameworks in a role with quota (aka > quota'ed role) beyond quota guarantee are marked non-revocable. This impacts > our flexibility for revoking them if we decide so in the future. > h4. Proposal > Once quota guarantee is satisfied we must not necessarily further allocate > resources as non-revocable. Instead we can mark all offers resources beyond > guarantee as revocable. When in the future {{RevocableInfo}} evolves > frameworks will get additional information about "revocability" of the > resource (i.e. allocation slack) > h4. Caveats > Though it seems like a simple change, it has several implications. > h6. Fairness > Currently the hierarchical allocator considers revocable resources as regular > resources when doing fairness calculations. This may prevent frameworks > getting non-revocable resources as part of their role's quota guarantee if > they accept some revocable resources as well. > Consider the following scenario. A single framework in a role with quota set > to {{10}} CPUs is allocated {{10}} CPUs as non-revocable resources as part of > its quota and additionally {{2}} revocable CPUs. Now a task using {{2}} > non-revocable CPUs finishes and its resources are returned. Total allocation > for the role is {{8}} non-revocable + {{2}} revocable. However, the role may > not be offered additional {{2}} non-revocable since its total allocation > satisfies quota. > h6. Resource math > If we allocate non-revocable resources as revocable, we should make sure we > do accounting right: either we should update total agent resources and mark > them as revocable as well, or bookkeep resources as non-revocable and convert > them to revocable when necessary. > h6. Coarse-grained nature of allocation > The hierarchical allocator performs "coarse-grained" allocation, meaning it > always allocates the entire remaining agent resources to a single framework. > This may lead to over-allocating some resources as non-revocable beyond quota > guarantee. > h6. Quotas smaller than fair share > If a quota set for a role is smaller than its fair share, it may reduce the > amount of resources offered to this role, if frameworks in it do not accept > revocable resources. This is probably the most important consequence of the > proposed change. Operators may set quota to get guarantees, but may observe a > decrease in amount of resources a role gets, which is not intuitive. -- This message was sent by Atlassian JIRA (v6.3.4#6332)