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

Splits failed before creating daughter regions leave meta inconsistent

    XMLWordPrintableJSON

Details

    • Reviewed

    Description

      This is on branch-1 based code only.

      Here's the sequence of events.

      1. A regionserver opens a new region. That regions looks like it should split.
      2. So the regionserver starts a split transaction.
      3. Split transaction starts execute
      4. Split transaction encounters an error in stepsBeforePONR
      5. Split transaction starts rollback
      6. Split transaction notifies master that it's rolling back using HMasterRpcServices#reportRegionStateTransition
      7. AssignmentManager#onRegionTransition is called with SPLIT_REVERTED
      8. AssignmentManager#onRegionSplitReverted is called.
      9. That onlines the parent region and offlines the daughter regions.

      However the daughter regions were never created in meta so all that gets done is that state for those rows gets OFFLINE. Now all clients trying to get the parent instead get the offline daughter.

      Attachments

        1. HBASE-16093-0.98.patch
          2 kB
          Andrew Kyle Purtell
        2. HBASE-16093.branch-1.patch
          2 kB
          Elliott Neil Clark

        Activity

          People

            eclark Elliott Neil Clark
            eclark Elliott Neil Clark
            Votes:
            0 Vote for this issue
            Watchers:
            11 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: