hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ted Yu (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-14306) Refine RegionGroupingProvider: fix issues and make it more scalable
Date Sun, 13 Sep 2015 08:38:45 GMT

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

Ted Yu commented on HBASE-14306:
--------------------------------

{code}
241	  private Set<WALProvider> getCurrentProviders() {
242	    Set<WALProvider> providerSet = new HashSet<WALProvider>();
243	    for (WALProvider provider : this.cached.values()) {
244	      providerSet.add(provider);
{code}
Do we need the extra HashSet ?
The callers just iterate through the return value from the above method.
ConcurrentHashMap.java#ConcurrentHashMap.Values returns a Collection which can be iterated.
Looks like returning this.cached.values() from above method should suffice.

> Refine RegionGroupingProvider: fix issues and make it more scalable
> -------------------------------------------------------------------
>
>                 Key: HBASE-14306
>                 URL: https://issues.apache.org/jira/browse/HBASE-14306
>             Project: HBase
>          Issue Type: Improvement
>          Components: wal
>    Affects Versions: 2.0.0, 1.1.2
>            Reporter: Yu Li
>            Assignee: Yu Li
>             Fix For: 2.0.0, 1.3.0
>
>         Attachments: HBASE-14306.patch, HBASE-14306_v2.patch, HBASE-14306_v3.patch, HBASE-14306_v3.patch,
HBASE-14306_v4.patch
>
>
> There're multiple issues in RegionGroupingProvider, including:
> * The provider cache in it is using byte array as the key of ConcurrentHashMap, which
is not right (the reason is [here|http://stackoverflow.com/questions/1058149/using-a-byte-array-as-hashmap-key-java])
> * It's using IdentityGroupingStrategy to get group and use it as key of the cache, which
means the cache will include an entry for each region. This is especially unnecessary when
using BoundedRegionGroupingProvider
> Besides fixing the above issues, I suggest to change BoundedRegionGroupingProvider from
a *provider* to a pluggable *strategy*, which will make the whole picture much more clear.
> For more details, please refer to the patch



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message