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

MENG DING commented on YARN-3026:
---------------------------------

bq. In CS (before this patch), excessReservation won't be completed since 
ParentQueue.assignContainers doesn't copy the excessReservation field, so 
CapacityScheduler will not release such excessReservations.

[~leftnoteasy], quick question for my own education, before this patch, it 
seems that the attempt to fulfill a reservation always starts in the LeafQueue, 
i.e.
{code:title=CapacityScheduler#allocateContainersToNode|borderStyle=solid}
      LeafQueue queue = ((LeafQueue)reservedApplication.getQueue());
      CSAssignment assignment =
          queue.assignContainers(
              clusterResource,
              node,
              // TODO, now we only consider limits for parent for non-labeled
              // resources, should consider labeled resources as well.
              new ResourceLimits(labelManager.getResourceByLabel(
                  RMNodeLabelsManager.NO_LABEL, clusterResource)));
{code}

So there is no need for  ParentQueue.assignContainers to copy excessReservation 
field, right?

> Move application-specific container allocation logic from LeafQueue to 
> FiCaSchedulerApp
> ---------------------------------------------------------------------------------------
>
>                 Key: YARN-3026
>                 URL: https://issues.apache.org/jira/browse/YARN-3026
>             Project: Hadoop YARN
>          Issue Type: Task
>          Components: capacityscheduler
>            Reporter: Wangda Tan
>            Assignee: Wangda Tan
>             Fix For: 2.8.0
>
>         Attachments: YARN-3026.1.patch, YARN-3026.2.patch, YARN-3026.3.patch, 
> YARN-3026.4.patch, YARN-3026.5.patch, YARN-3026.6.patch
>
>
> Have a discussion with [~vinodkv] and [~jianhe]: 
> In existing Capacity Scheduler, all allocation logics of and under LeafQueue 
> are located in LeafQueue.java in implementation. To make a cleaner scope of 
> LeafQueue, we'd better move some of them to FiCaSchedulerApp.
> Ideal scope of LeafQueue should be: when a LeafQueue receives some resources 
> from ParentQueue (like 15% of cluster resource), and it distributes resources 
> to children apps, and it should be agnostic to internal logic of children 
> apps (like delayed-scheduling, etc.). IAW, LeafQueue shouldn't decide how 
> application allocating container from given resources.



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

Reply via email to