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

Sunil G commented on YARN-4304:
-------------------------------

Hi [~leftnoteasy]

Thank you very much for sharing the comments. I have few doubts in same.

bq.Could you update user am-limit (in User.resourceUsage) as well when 
computing user am-limit at activateApplications? 
We already doing this in activateApplications as below.
{noformat}
user.getResourceUsage().incAMUsed(partitionName,
          application.getAMResource(partitionName));
user.getResourceUsage().setAMLimit(partitionName, userAMLimit);
{noformat}

Now if we need to do this in {{getUserAMResourceLimitPerPartition}}, we need to 
pass the username as well. This user name comes from {{application}}
{code}
// Check user am resource limit
      User user = getUser(application.getUser());
{code}

Hence,
1. We cannot pre-compute user am-limit like we have done for am-limit before 
pendingOrderingPolicy loop in {{activateApplications}}
2. So as we compute this limit every time, we store in 
{{user.getResourceUsage()}}. I thought of resusing this. However there can be 
cases where 0 user/1 users/Multiple users for one queue. So getting correct 
user is not really predictable for all getters (now we do not supply any user 
name in getAMUserLimit/Partition, even though we take first user, there can be 
cases where 0 users). 

Thoughts?

bq. CapacitySchedulerPage, Instead of getAMResourceLimit() , Shouldn't you use 
getAMResourceLimit(partition)?
{code}
      PartitionResourcesInfo resourceUsages =
          lqinfo.getResources().getPartitionResourceUsageInfo(label);

      // Get UserInfo from first user to calculate AM Resource Limit per user.
      ResourceInfo userAMResourceLimit = null;
      ArrayList<UserInfo> usersList = lqinfo.getUsers().getUsersList();
      if (usersList.isEmpty()) {
        // If no users are present, consider AM Limit for that queue.
        userAMResourceLimit = resourceUsages.getAMResourceLimit();
      }
....
{code}

Here {{resourceUsages}} is already taken for specific label. Hence i think we 
do not need per label am-limit. 

> AM max resource configuration per partition to be displayed/updated correctly 
> in UI and in various partition related metrics
> ----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: YARN-4304
>                 URL: https://issues.apache.org/jira/browse/YARN-4304
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>          Components: webapp
>    Affects Versions: 2.7.1
>            Reporter: Sunil G
>            Assignee: Sunil G
>         Attachments: 0001-YARN-4304.patch, 0002-YARN-4304.patch, 
> 0003-YARN-4304.patch, 0004-YARN-4304.patch, 0005-YARN-4304.patch, 
> 0005-YARN-4304.patch, 0006-YARN-4304.patch, 0007-YARN-4304.patch, 
> REST_and_UI.zip
>
>
> As we are supporting per-partition level max AM resource percentage 
> configuration, UI and various metrics also need to display correct 
> configurations related to same. 
> For eg: Current UI still shows am-resource percentage per queue level. This 
> is to be updated correctly when label config is used.
> - Display max-am-percentage per-partition in Scheduler UI (label also) and in 
> ClusterMetrics page
> - Update queue/partition related metrics w.r.t per-partition 
> am-resource-percentage



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

Reply via email to