Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-14306

Refine RegionGroupingProvider: fix issues and make it more scalable

VotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.1.2, 2.0.0
    • Fix Version/s: 1.3.0, 2.0.0
    • Component/s: wal
    • Labels:
      None
    • Hadoop Flags:
      Reviewed
    • Release Note:
      Hide
      In HBASE-14306 we've changed default strategy of RegionGroupingProvider from "identify" to "bounded", so it's required to explicitly set "hbase.wal.regiongrouping.strategy" to "identify" if user still wants to use one WAL per region

      Please also notice that in the new framework there will be one WAL per group, and the region-group mapping is decided by RegionGroupingStrategy. Accordingly, we've removed BoundedRegionGroupingProvider and added BoundedRegionGroupingStrategy as a replacement. If you already have a customized class for hbase.wal.regiongrouping.strategy, please check the new logic and make updates if necessary.
      Show
      In HBASE-14306 we've changed default strategy of RegionGroupingProvider from "identify" to "bounded", so it's required to explicitly set "hbase.wal.regiongrouping.strategy" to "identify" if user still wants to use one WAL per region Please also notice that in the new framework there will be one WAL per group, and the region-group mapping is decided by RegionGroupingStrategy. Accordingly, we've removed BoundedRegionGroupingProvider and added BoundedRegionGroupingStrategy as a replacement. If you already have a customized class for hbase.wal.regiongrouping.strategy, please check the new logic and make updates if necessary.

      Description

      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)
      • 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

        Attachments

        1. HBASE-14306.branch-1.patch
          40 kB
          Yu Li
        2. HBASE-14306_v5.patch
          40 kB
          Yu Li
        3. HBASE-14306_v4.patch
          25 kB
          Yu Li
        4. HBASE-14306_v3.patch
          25 kB
          Yu Li
        5. HBASE-14306_v3.patch
          25 kB
          Yu Li
        6. HBASE-14306_v2.patch
          24 kB
          Yu Li
        7. HBASE-14306.patch
          23 kB
          Yu Li

        Issue Links

          Activity

            People

            • Assignee:
              liyu Yu Li
              Reporter:
              liyu Yu Li

              Dates

              • Created:
                Updated:
                Resolved:

                Issue deployment