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

Xiang Li commented on HBASE-22031:
----------------------------------

Hi [~xucang] I uploaded a very first patch to demonstrate the idea. Please 
review at your convenience. Thanks!

> Provide RSGroupInfo with a new constructor with shallow copy
> ------------------------------------------------------------
>
>                 Key: HBASE-22031
>                 URL: https://issues.apache.org/jira/browse/HBASE-22031
>             Project: HBase
>          Issue Type: Improvement
>          Components: rsgroup
>            Reporter: Xiang Li
>            Assignee: Xiang Li
>            Priority: Minor
>         Attachments: HBASE-22031.master.000.patch
>
>
> As for org.apache.hadoop.hbase.rsgroup.RSGroupInfo, the following constructor 
> performs deep copies on both servers and tables inputed.
> {code:title=hbase-common/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfo.java.java|borderStyle=solid}
> RSGroupInfo(String name, SortedSet<Address> servers, SortedSet<TableName> 
> tables) {
>   this.name = name;
>   this.servers = (servers == null) ? new TreeSet<>() : new TreeSet<>(servers);
>   this.tables  = (tables  == null) ? new TreeSet<>() : new TreeSet<>(tables);
> }
> {code}
> The constructor of TreeSet is heavy and I think it is better to have a new 
> constructor with shallow copy and it could be used at least in
> {code:title=hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java|borderStyle=solid}
> private synchronized void refresh(boolean forceOnline) throws IOException {
>   ...
>   groupList.add(new RSGroupInfo(RSGroupInfo.DEFAULT_GROUP, 
> getDefaultServers(), orphanTables));
>   ...
> {code}
> It is not needed to allocate new TreeSet to deep copy the output of 
> getDefaultServers() and orphanTables, both of which are allocated in the near 
> context and not updated in the code followed. So it is safe to make a shadow 
> copy here.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to