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

RegionAlreadyInTransitionException needs to give more info to avoid assignment inconsistencies

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 0.94.2
    • None
    • None
    • Reviewed

    Description

      Seeing some of the recent issues in region assignment, RegionAlreadyInTransitionException is one reason after which the region assignment may or may not happen(in the sense we need to wait for the TM to assign).
      In HBASE-6317 we got one problem due to RegionAlreadyInTransitionException on master restart.
      Consider the following case, due to some reason like master restart or external assign call, we try to assign a region that is already getting opened in a RS.
      Now the next call to assign has already changed the state of the znode and so the current assign that is going on the RS is affected and it fails. The second assignment that started also fails getting RAITE exception. Finally both assignments not carrying on. Idea is to find whether any such RAITE exception can be retried or not.
      Here again we have following cases like where
      -> The znode is yet to transitioned from OFFLINE to OPENING in RS
      -> RS may be in the step of openRegion.
      -> RS may be trying to transition OPENING to OPENED.
      -> RS is yet to add to online regions in the RS side.

      Here in openRegion() and updateMeta() any failures we are moving the znode to FAILED_OPEN. So in these cases getting an RAITE should be ok. But in other cases the assignment is stopped.
      The idea is to just add the current state of the region assignment in the RIT map in the RS side and using that info we can determine whether the assignment can be retried or not on getting an RAITE.

      Considering the current work going on in AM, pls do share if this is needed atleast in the 0.92/0.94 versions?

      Attachments

        1. HBASE-6438-trunk_2.patch
          5 kB
          rajeshbabu
        2. HBASE-6438_trunk.patch
          5 kB
          rajeshbabu
        3. HBASE-6438_94.patch
          9 kB
          rajeshbabu
        4. HBASE-6438_94_4.patch
          5 kB
          rajeshbabu
        5. HBASE-6438_94_3.patch
          5 kB
          rajeshbabu
        6. HBASE-6438_2.patch
          9 kB
          rajeshbabu
        7. 6438-trunk_2.patch
          5 kB
          Ted Yu
        8. 6438-addendum.94
          0.7 kB
          Ted Yu
        9. 6438-0.92.txt
          5 kB
          Ted Yu
        10. 6438.addendum
          0.8 kB
          Ted Yu

        Issue Links

          Activity

            People

              rajesh23 rajeshbabu
              ram_krish ramkrishna.s.vasudevan
              Votes:
              0 Vote for this issue
              Watchers:
              11 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: