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

Wangda Tan commented on YARN-5892:
----------------------------------

Thanks [~eepayne] to update the patch.

Several comments:

1) For User weight:
- I prefer to only allow specify it in the leaf queue level. Inheriting from 
parent causes confusing in other cases. (For example should we allow 
overwriting in leaf, etc.)
- I think we should limit the user weight to be: {{User_weight <= 100 / MULP}} 
when validating the config. Otherwise if MULP = 100, and user X's weight = 3, 
by definition it can get guaranteed resource of 3 * queue configured resource, 
which is not good.

2) LeafQueue: 
- getUserAMResourceLimitPerPartition(String) is not used by anyone, can be 
removed.

3) UsersManager:
I think logics in the {{computeUserLimit}} should be updated:
{code}
    int usersCount = getNumActiveUsers();
    Resource resourceUsed = totalResUsageForActiveUsers.getUsed(nodePartition);

    // For non-activeUser calculation, consider all users count.
    if (!activeUser) {
      resourceUsed = currentCapacity;
      usersCount = users.size();
    }
{code}
Users_count should be a float and impacted by weight according to definition of 
weight (weight=x means equivalent to x users). For example, if a two users in 
the queue, one has weight=2, one has weight = 0.5, the users count should be 
2.5. And we need get separately users_count_by_weight for all users and active 
users.

4) updateUsersWeights:
Should we move userLimitNeedsRecompute into the weight lock, otherwise it could 
cause a race condition.

5) Could you update doc with more detailed example?

> Capacity Scheduler: Support user-specific minimum user limit percent
> --------------------------------------------------------------------
>
>                 Key: YARN-5892
>                 URL: https://issues.apache.org/jira/browse/YARN-5892
>             Project: Hadoop YARN
>          Issue Type: Improvement
>          Components: capacityscheduler
>            Reporter: Eric Payne
>            Assignee: Eric Payne
>         Attachments: Active users highlighted.jpg, YARN-5892.001.patch, 
> YARN-5892.002.patch, YARN-5892.003.patch, YARN-5892.004.patch, 
> YARN-5892.005.patch, YARN-5892.006.patch
>
>
> Currently, in the capacity scheduler, the {{minimum-user-limit-percent}} 
> property is per queue. A cluster admin should be able to set the minimum user 
> limit percent on a per-user basis within the queue.
> This functionality is needed so that when intra-queue preemption is enabled 
> (YARN-4945 / YARN-2113), some users can be deemed as more important than 
> other users, and resources from VIP users won't be as likely to be preempted.
> For example, if the {{getstuffdone}} queue has a MULP of 25 percent, but user 
> {{jane}} is a power user of queue {{getstuffdone}} and needs to be guaranteed 
> 75 percent, the properties for {{getstuffdone}} and {{jane}} would look like 
> this:
> {code}
>   <property>
>     
> <name>yarn.scheduler.capacity.root.getstuffdone.minimum-user-limit-percent</name>
>     <value>25</value>
>   </property>
>   <property>
>     
> <name>yarn.scheduler.capacity.root.getstuffdone.jane.minimum-user-limit-percent</name>
>     <value>75</value>
>   </property>
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to