[ https://issues.apache.org/jira/browse/YARN-2056?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14140295#comment-14140295 ]
Wangda Tan commented on YARN-2056: ---------------------------------- Hi [~eepayne], Thanks for updating, I've took a look at your patch and completely re-thought about it. Some ideas: In existing preemption logic, the {{resetCapacity}} is a static calculation, irrelatated to resource usage of any queue. And with result calculated by {{resetCapacity}}, {{computeFixpointAllocation}} will make sure that: *If there's any resource isn't allocated, it will be assigned to existing queues by its normalized_guarantee calculated*. This is foundation of following calculation, like get {{toBePreempted}} of each queue, we shouldn't break it. IMHO, the right place to put reserving resource logic for un-preemptable queue is not {{resetCapacity}}, it should in {{computeFixpointAllocation}}. I think adding {{preemptableExtra}} in each TempQueue, and ParentQueue will accumulate {{preemptableExtra}} of its children is a good idea. What I proposed to do in {{computeFixpointAllocation}} {code} computeFixpointAllocation { ... + for (q in qAlloc) { + if (q.disablePreempt) { + q.ideal_assigned = q.current + unassigned = unassigned - q.ideal_assigned + } + } while (!qAlloc.isEmpty() && Resources.greaterThan(rc, tot_guarant, unassigned, Resources.none()) && Resources.greaterThan(rc, tot_guarant, wQassigned, Resources.none())) { ... } } {code} And in the while (!qAlloc.isEmpty()) loop above, we need take care the fact: some queue's ideal_assigned is started from 0, and some queue's ideal_assigned is started from current. Does this make sense to you? Wangda > 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 > > > We need to be able to disable preemption at individual queue level -- This message was sent by Atlassian JIRA (v6.3.4#6332)