Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 0.95.0
    • Fix Version/s: 0.98.0, 0.95.0
    • Component/s: None
    • Labels:
      None
    • Hadoop Flags:
      Reviewed
    • Release Note:
      Support merging two regions as a transaction, just like split transaction, it is experimental now

      Description

      Support executing region merge transaction on Regionserver, similar with split transaction

      Process of merging two regions:
      a.client sends RPC (dispatch merging regions) to master
      b.master moves the regions together (on the same regionserver where the more heavily loaded region resided)
      c.master sends RPC (merge regions) to this regionserver
      d.Regionserver executes the region merge transaction in the thread pool
      e.the above b,c,d run asynchronously

      Process of region merge transaction:
      a.Construct a new region merge transaction.

      b.prepare for the merge transaction, the transaction will be canceled if it is unavailable,
      e.g. two regions don't belong to same table; two regions are not adjacent in a non-compulsory merge; region is closed or has reference

      c.execute the transaction as the following:
      /**

      • Set region as in transition, set it into MERGING state.
        */
        SET_MERGING_IN_ZK,
        /**
      • We created the temporary merge data directory.
        */
        CREATED_MERGE_DIR,
        /**
      • Closed the merging region A.
        */
        CLOSED_REGION_A,
        /**
      • The merging region A has been taken out of the server's online regions list.
        */
        OFFLINED_REGION_A,
        /**
      • Closed the merging region B.
        */
        CLOSED_REGION_B,
        /**
      • The merging region B has been taken out of the server's online regions list.
        */
        OFFLINED_REGION_B,
        /**
      • Started in on creation of the merged region.
        */
        STARTED_MERGED_REGION_CREATION,
        /**
      • Point of no return. If we got here, then transaction is not recoverable
      • other than by crashing out the regionserver.
        */
        PONR

      d.roll back if step c throws exception

      Usage:

      HBaseAdmin#mergeRegions

      See more details from the patch

      1. hbase-7403-0.95.patch
        364 kB
        chunhui shen
      2. hbase-7403-trunkv33.patch
        365 kB
        chunhui shen
      3. hbase-7403-trunkv32.patch
        365 kB
        chunhui shen
      4. hbase-7403-trunkv31.patch
        365 kB
        chunhui shen
      5. hbase-7403-trunkv30.patch
        365 kB
        chunhui shen
      6. hbase-7403-trunkv29.patch
        365 kB
        chunhui shen
      7. hbase-7403-trunkv28.patch
        365 kB
        chunhui shen
      8. hbase-7403-trunkv26.patch
        362 kB
        chunhui shen
      9. hbase-7403-trunkv24.patch
        362 kB
        chunhui shen
      10. hbase-7403-trunkv23.patch
        362 kB
        chunhui shen
      11. hbase-7403-trunkv22.patch
        365 kB
        chunhui shen
      12. hbase-7403-trunkv20.patch
        365 kB
        chunhui shen
      13. hbase-7403-trunkv19.patch
        360 kB
        chunhui shen
      14. hbase-7403-trunkv16.patch
        261 kB
        chunhui shen
      15. hbase-7403-trunkv15.patch
        261 kB
        chunhui shen
      16. hbase-7403-trunkv14.patch
        261 kB
        chunhui shen
      17. hbase-7403-trunkv13.patch
        251 kB
        chunhui shen
      18. hbase-7403-trunkv12.patch
        250 kB
        chunhui shen
      19. hbase-7403-trunkv11.patch
        226 kB
        chunhui shen
      20. hbase-7403-trunkv10.patch
        110 kB
        chunhui shen
      21. hbase-7403-trunkv9.patch
        108 kB
        chunhui shen
      22. hbase-7403-trunkv8.patch
        104 kB
        chunhui shen
      23. hbase-7403-trunkv7.patch
        98 kB
        chunhui shen
      24. 7403-trunkv6.patch
        97 kB
        chunhui shen
      25. hbase-7403-trunkv6.patch
        97 kB
        chunhui shen
      26. 7403v5.diff
        98 kB
        chunhui shen
      27. 7403v5.txt
        98 kB
        chunhui shen
      28. 7403-v5.txt
        98 kB
        chunhui shen
      29. 7403-trunkv5.patch
        98 kB
        chunhui shen
      30. hbase-7403-trunkv5.patch
        98 kB
        chunhui shen
      31. hbase-7403-94v1.patch
        99 kB
        chunhui shen
      32. hbase-7403-trunkv1.patch
        95 kB
        chunhui shen
      33. merge region.pdf
        242 kB
        chunhui shen

        Issue Links

          Activity

          No work has yet been logged on this issue.

            People

            • Assignee:
              chunhui shen
              Reporter:
              chunhui shen
            • Votes:
              4 Vote for this issue
              Watchers:
              37 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development