[
https://issues.apache.org/jira/browse/YARN-2009?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15553303#comment-15553303
]
Eric Payne commented on YARN-2009:
----------------------------------
Thanks, [~sunilg], for your reply.
-----
- {{FifoIntraQueuePreemptionPlugin#calculateIdealAssignedResourcePerApp}}
-- The assignment to {{tmpApp.idealAssigned}} should be cloned:
{code}
tmpApp.idealAssigned = Resources.min(rc, clusterResource,
queueTotalUnassigned, appIdealAssigned);
...
Resources.subtractFrom(queueTotalUnassigned, tmpApp.idealAssigned);
{code}
-- In the above code, if {{queueTotalUnassigned}} is less than
{{appIdealAssigned}}, then {{tmpApp.idealAssigned}} is assigned a reference to
{{queueTotalUnassigned}}. Then, later, {{tmpApp.idealAssigned}} is actually
subtracted from itself.
-----
bq. This current patch will still handle priority and priority + user-limit.
Thoughts?
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.
- I still need to think through all of the effects, but I was thinking that
something like the following could work:
-- I think my use case is failing because
{{FifoIntraQueuePreemptionPlugin#calculateIdealAssignedResourcePerApp}} orders
the apps by priority. 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.
-- Then, if {{calculateIdealAssignedResourcePerApp}} orders the apps by
{{toBePreemptedByOther}}, {{validateOutSameAppPriorityFromDemand}} would also
need to not compare priorities but the app's requirements.
-- I think it should be something like the following, maybe:
{code}
while (lowAppIndex < highAppIndex
&& !apps[lowAppIndex].equals(apps[highAppIndex])
// && apps[lowAppIndex].getPriority() <
apps[highAppIndex].getPriority()) {
&& Resources.lessThan(rc, clusterResource,
apps[lowAppIndex].getToBePreemptFromOther(),
apps[highAppIndex].getToBePreemptFromOther()) ) {
{code}
> 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: [email protected]
For additional commands, e-mail: [email protected]