[
https://issues.apache.org/jira/browse/HADOOP-17079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17264548#comment-17264548
]
Ahmed Hussein commented on HADOOP-17079:
----------------------------------------
[~xyao], thanks for the optimization.
{{JniBasedUnixGroupsNetgroupMapping}} does not implement {{getGroupSet}}.
As a result, {{Groups.load()}} load the cache calling {{fetchGroupSet}} which
got
to the superclass {{JniBasedUnixGroupsMapping}}.
In other words, the groups mapping will never fetch from {{NetgroupCache}}.
This alters the behavior of the implementation. Is there a reason to bypass
loading
{{JniBasedUnixGroupsNetgroupMapping}} into {{Groups.java}}?
> Optimize UGI#getGroups by adding UGI#getGroupsSet
> -------------------------------------------------
>
> Key: HADOOP-17079
> URL: https://issues.apache.org/jira/browse/HADOOP-17079
> Project: Hadoop Common
> Issue Type: Improvement
> Reporter: Xiaoyu Yao
> Assignee: Xiaoyu Yao
> Priority: Major
> Fix For: 3.4.0
>
> Attachments: HADOOP-17079.002.patch, HADOOP-17079.003.patch,
> HADOOP-17079.004.patch, HADOOP-17079.005.patch, HADOOP-17079.006.patch,
> HADOOP-17079.007.patch
>
>
> UGI#getGroups has been optimized with HADOOP-13442 by avoiding the
> List->Set->List conversion. However the returned list is not optimized to
> contains lookup, especially the user's group membership list is huge
> (thousands+) . This ticket is opened to add a UGI#getGroupsSet and use
> Set#contains() instead of List#contains() to speed up large group look up
> while minimize List->Set conversions in Groups#getGroups() call.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]