[ 
https://issues.apache.org/jira/browse/YARN-2056?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Eric Payne updated YARN-2056:
-----------------------------
    Attachment: YARN-2056.201409232329.txt

[~leftnoteasy],

This patch now works in all cases, except IF queue preemption is disabled for a 
particular queue, it has a different behavior than previously. That is:
{code}
root has A,B,C, total capacity = 90
A.guaranteed = 30, A.pending = 20, A.current = 40
B.guaranteed = 30, B.pending = 0, B.current = 50
C.guaranteed = 30, C.pending = 0, C.current = 0
{code}
In the above case, if all queues are preemptable, this patch works the same as 
it did before. That is, A and B will both end up with 45.

However, with this patch
{code}
IF (A is not preemptable)
    AND (A is already over capacity)
    AND (all resources are used)
    AND (A is asking for more resources) {
        A will remain at 40 and B will remain at 50
}
{code}
I believe that there is a way to make the this patch maintain the old behavior, 
even if A is not preemptable, but it would require something like the following 
algorithm:
{code}
In ProportionalCapacityPreemptionPolicy#computeFixpointAllocation:
FOR each queue {
    IF queue has untouchableExtra {
        queue.idalAssigned = queue.guaranteed + queue.untouchable
        unassigned -= queue.idealAssigned
        remove queue from qAlloc
        add queue to list of queues that were removed
    }
}

Assign the remaining unassigned resources, computing idealAssigned for the 
remaining queues, with the following modification:
    IF (queues at this level go over their capacity)
        AND (they are over by the same percentage as the queue(s) that were 
removed) {
        put the removed queue(s) back into qAlloc and continue to compute 
idealAssigned
    }
{code}


> Disable preemption at Queue level
> ---------------------------------
>
>                 Key: YARN-2056
>                 URL: https://issues.apache.org/jira/browse/YARN-2056
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>          Components: resourcemanager
>    Affects Versions: 2.4.0
>            Reporter: Mayank Bansal
>            Assignee: Eric Payne
>         Attachments: YARN-2056.201408202039.txt, YARN-2056.201408260128.txt, 
> YARN-2056.201408310117.txt, YARN-2056.201409022208.txt, 
> YARN-2056.201409181916.txt, YARN-2056.201409210049.txt, 
> YARN-2056.201409232329.txt
>
>
> We need to be able to disable preemption at individual queue level



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

Reply via email to