[ https://issues.apache.org/jira/browse/YARN-2753?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14187575#comment-14187575 ]
zhihai xu commented on YARN-2753: --------------------------------- Hi [~leftnoteasy], thanks for your suggestion. I also merged YARN-2754 and YARN-2756 to this Jira. zhihai > 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 (v6.3.4#6332)