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

A region's state is kept in several places in the master opening the possibility for race conditions

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.1.0, 0.1.1, 0.2.0
    • 0.19.0
    • master
    • None

    Description

      A region's state exists in multiple maps in the RegionManager: unassignedRegions, pendingRegions, regionsToClose, closingRegions, regionsToDelete, etc.

      One of these race conditions was found in HBASE-534.

      For HBase-0.1.x, we should just patch the holes we find.

      The ultimate solution (which requires a lot of changes in HMaster) should be applied to HBase trunk.

      Proposed solution:

      Create a class that encapsulates a region's state and provide synchronized access to the class that validates state changes.
      There should be a single structure that holds regions in these transitional states and it should be a synchronized collection of some kind.

      Attachments

        1. 543.patch
          49 kB
          Jim Kellerman
        2. 543.patch
          48 kB
          Jim Kellerman
        3. 543.patch
          36 kB
          Michael Stack
        4. 543.patch-4
          50 kB
          Jim Kellerman
        5. 543.patch-5
          67 kB
          Jim Kellerman
        6. 543.patch-6
          70 kB
          Jim Kellerman
        7. recent-changes.patch
          38 kB
          Michael Stack
        8. regionstate.txt
          4 kB
          Jim Kellerman

        Issue Links

          Activity

            People

              jimk Jim Kellerman
              jimk Jim Kellerman
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: