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

Online Merge

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 0.95.0
    • 0.98.0, 0.95.0
    • None
    • None
    • Reviewed
    • 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

      Attachments

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

        Issue Links

          Activity

            People

              zjushch Chunhui Shen
              zjushch Chunhui Shen
              Votes:
              4 Vote for this issue
              Watchers:
              39 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: