mesos-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Park (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (MESOS-4441) Do not allocate non-revocable resources beyond quota guarantee.
Date Wed, 27 Jan 2016 04:19:39 GMT

     [ 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)

Mime
View raw message