[ https://issues.apache.org/jira/browse/HBASE-14306?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15064494#comment-15064494 ]
Sean Busbey commented on HBASE-14306: ------------------------------------- {quote} bq. those relying on the ability to set a grouping strategy while using the bounded behavior of the multiwal provider will no longer get the bounded behavior and will have to update their strategy to bound the number of groups. Since we've modified the defaultStrategy to BoundedGroupingStrategy.class in RegionGroupingProvider$Strategies (as shown below), so user will still get bounded behavior when they specify hbase.wal.provider to multiwal {quote} That's not the same thing. Before this patch, someone could specify "multiwal" for provider and then specify a class that does their own grouping for the strategy, e.g. "com.example.hbase.PerTableRegionGroupingStrategy". The end result would be they'd get regions grouped by table but bounded to a fixed number of pipelines. After this patch they'd have no bound unless they update their custom strategy to do the bounding as well. > 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.branch-1.patch, HBASE-14306.patch, > HBASE-14306_v2.patch, HBASE-14306_v3.patch, HBASE-14306_v3.patch, > HBASE-14306_v4.patch, HBASE-14306_v5.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)