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

Wangda Tan commented on YARN-2009:
----------------------------------

bq. I am not comfortable with fixing this in another patch. Our main use case 
is the one where multiple users need to use the same queue with apps at the 
same priority...

[~eepayne], I'm not trying to argue the importance of the use case: {{multiple 
users need to use the same queue with apps at the same priority}} -- it's the 
most important use case of intra-queue preemption. But to make we can easier 
review the patch, can we move it to a separate JIRA and start to work on it 
right after the JIRA is get committed (if we're generally fine with existing 
JIRA). This patch is already very dense, review a patch with changed logics is 
much harder than review a separate patch on top of this one.

The major problem of why this patch cannot solve the preemption between user is 
-- it doesn't calculate "ideal allocation" and "preemptable resource" for user. 
Existing logic only caps calculated ideal allocation by user limit, we need to 
do more:
For example, when there're two users in a queue, u1 above UL, u2 below UL, 
however u2 doesn't have more pending resource, in this case, we shouldn't 
preempt resource from u1.

To solve the problem, we need add some logics to 
{{calculateIdealAssignedResourcePerApp}} to calculate the actual ideal 
allocation / preemptable for users, and we need update the while condition in 
{{validateOutSameAppPriorityFromDemand}} as well. It doesn't sound like a very 
simple patch (few lines change) to me.

The change proposal mentioned in your above comment is not correct:
bq. I think it should be something like the following, maybe: ...
This will cause application from the same user preempt according to FIFO order 
(A1/A2 from the same user, A1 submitted first, and ask for more resource, A2 
can preempt resource from A2), which is what we want to avoid.

And this doesn't sound correct to me as well:
bq. I think that instead, it should order the apps by how much they are 
underserved. I think that it should be ordering the apps by 
tmpApp.toBePreemptedByOther instead of priority...
It could preempt violate FIFO order, and in the scheduling cycle, preempted 
resource may come back to the app which is just get preempted.

Please let me if you have any concerns to move the user limit preemption to a 
separate JIRA.

Thanks,

> Priority support for preemption in ProportionalCapacityPreemptionPolicy
> -----------------------------------------------------------------------
>
>                 Key: YARN-2009
>                 URL: https://issues.apache.org/jira/browse/YARN-2009
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>          Components: capacityscheduler
>            Reporter: Devaraj K
>            Assignee: Sunil G
>         Attachments: YARN-2009.0001.patch, YARN-2009.0002.patch, 
> YARN-2009.0003.patch, YARN-2009.0004.patch, YARN-2009.0005.patch
>
>
> While preempting containers based on the queue ideal assignment, we may need 
> to consider preempting the low priority application containers first.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org

Reply via email to