[ https://issues.apache.org/jira/browse/HADOOP-9937?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13762056#comment-13762056 ]
Colin Patrick McCabe commented on HADOOP-9937: ---------------------------------------------- We put a lock around getgrname_r by default, since a large percentage of systems out there have an implementation that actually is not re-entrant (despite the _r). So you may not get as large a speedup as you think by removing the lock in {{UserGroupInformation#getGroupNames}} (unless you also set {{hadoop.workaround.non.threadsafe.getpwuid}} to {{false}}). You could create a custom lock just for group information (rather than synchronizing on the big UGI lock), but I'm not sure how much that would help. Do you have a more detailed proposal for how to change the synchronization here? > Improvement of the group information refer frequency > ---------------------------------------------------- > > Key: HADOOP-9937 > URL: https://issues.apache.org/jira/browse/HADOOP-9937 > Project: Hadoop Common > Issue Type: Improvement > Components: security > Affects Versions: 3.0.0 > Reporter: Shinichi Yamashita > Priority: Minor > Attachments: namenode-threaddump.txt > > > The node (e.g. NameNode, ResourceManager) uses UGI.getGroupNames() now to get > the information of the user's group who accessed it. > In UGI.getGroupsNames(), synchronized is declared, but UGI instance by > various methods each time and the node get different lock in getGroupName(). > For example, when cache time limit in userToGroupsMap of Groups expired and > the node accepts many requests at the same time, each refers for group > information in id command or JNI. > To improve the refer frequency of the group information, it should change > about synchronization. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira