zhihai xu commented on YARN-2753:

Hi [~leftnoteasy],
thanks for your suggestion. I also merged YARN-2754 and YARN-2756 to this Jira.

> Fix potential issues and code clean up for *NodeLabelsManager
> -------------------------------------------------------------
>                 Key: YARN-2753
>                 URL: https://issues.apache.org/jira/browse/YARN-2753
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>            Reporter: zhihai xu
>            Assignee: zhihai xu
>         Attachments: YARN-2753.000.patch, YARN-2753.001.patch, 
> YARN-2753.002.patch, YARN-2753.003.patch, YARN-2753.004.patch
> Issues include:
> * CommonNodeLabelsManager#addToCluserNodeLabels should not change the value 
> in labelCollections if the key already exists otherwise the Label.resource 
> will be changed(reset).
> * potential NPE(NullPointerException) in checkRemoveLabelsFromNode of 
> CommonNodeLabelsManager.
> ** because when a Node is created, Node.labels can be null.
> ** In this case, nm.labels; may be null. So we need check originalLabels not 
> null before use it(originalLabels.containsAll).
> * addToCluserNodeLabels should be protected by writeLock in 
> RMNodeLabelsManager.java. because we should protect labelCollections in 
> RMNodeLabelsManager.
> * use static variable (Resources.none()) for not-running Node.resource in 
> CommonNodeLabelsManager to save memory.
> ** When a Node is not activated, the resource is never used, When a Node is 
> activated, a new resource will be assigned to it in 
> RMNodeLabelsManager#activateNode (nm.resource = resource) So it would be 
> better to use static variable Resources.none() instead of allocating a new 
> variable(Resource.newInstance(0, 0)) for each node deactivation.

This message was sent by Atlassian JIRA

Reply via email to