[ 
https://issues.apache.org/jira/browse/MESOS-6432?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15827823#comment-15827823
 ] 

Benjamin Bannier edited comment on MESOS-6432 at 1/18/17 10:48 AM:
-------------------------------------------------------------------

[~bmahler]: I have posted a patch implementing the fix you suggested in the 
original description (quota satisfied once a single resource kind is allocated 
up to the quota limit).

Before going forward with this patch we should carefully evaluate if this 
approach has the semantics we want, fixes the underlying issue, and is 
ultimately worth it while more general fixes like MESOS-3765 being considered. 
I believe we are replacing "gamebility" with a potentially steep penalty for 
"unusual" quota setups (e.g., a quota of {{cpus:100000;disk:1}} would with this 
change be satisfied once 1MB have been allocated towards the quota'ed role). 
OTOH, the gamebility we are fixing would be restricted to users with the 
ability to update or set quotas, i.e., operators should be able to curb gaming 
of quota by arbitrary users.


was (Author: bbannier):
[~bmahler]: I have posted a patch implementing the fix you suggested in the 
original description (quota satisfied once a single resource kinds is allocated 
up to the quota limit).

Before going forward with this patch we should carefully evaluate if this 
approach has the semantics we want, fixes the underlying issue, and is 
ultimately worth it while more general fixes like MESOS-3765 being considered. 
I believe we are replacing "gamebility" with a potentially steep penalty for 
"unusual" quota setups (e.g., a quota of {{cpus:100000;disk:1}} would with this 
change be satisfied once 1MB have been allocated towards the quota'ed role). 
OTOH, the gamebility we are fixing would be restricted to users with the 
ability to update or set quotas, i.e., operators should be able to curb gaming 
of quota by arbitrary users.

> Roles with quota assigned can "game" the system to receive excessive 
> resources.
> -------------------------------------------------------------------------------
>
>                 Key: MESOS-6432
>                 URL: https://issues.apache.org/jira/browse/MESOS-6432
>             Project: Mesos
>          Issue Type: Bug
>          Components: allocation
>            Reporter: Benjamin Mahler
>            Assignee: Benjamin Bannier
>            Priority: Critical
>
> The current implementation of quota allocation attempts to satisfy each 
> resource quota for a role, but in doing so can far exceed the quota assigned 
> to the role.
> For example, if a role has quota for {{\[30,20,10\]}}, it can consume up to: 
> {{\[∞, ∞, 10\]}} or {{\[∞, 20, ∞\]}} or {{\[30, ∞, ∞\]}} as only once each 
> resource in the quota vector is satisfied do we stop allocating agent's 
> resources to the role!
> As a first step for preventing gaming, we could consider quota satisfied once 
> any of the resources in the vector has quota satisfied. This approach works 
> reasonably well for resources that are required and are present on every 
> agent (cpus, mem, disk). However, it doesn't work well for resources that are 
> optional / only present on some agents (e.g. gpus) (a.k.a. non-ubiquitous / 
> scarce resources). For this we would need to determine which agents have 
> resources that can satisfy the quota prior to performing the allocation.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to