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

ReportRegionStateTransitionRequest should be executed in priority executor



    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.1.2, 2.0.4
    • Fix Version/s: 3.0.0-alpha-1, 2.2.0, 2.1.3, 2.0.5
    • Component/s: None
    • Labels:


      Now, ReportRegionStateTransitionRequest is executed in default handler, only region of system table is executed in priority handler. That is because we have only two kinds of handler default and priority in master(replication handler is for replication specifically), if the transition report for all region is executed in priority handler, there is a dead lock situation that other regions' transition report take all handler and need to update meta, but meta region is not able to report online since all handler is taken(addressed in the comments of MasterAnnotationReadingPriorityFunction).

      But there is another dead lock case that user's DDL requests (or other sync op like moveregion) take over all default handlers, making region transition report is not possible, thus those sync ops can't complete either. A simple UT provided in the patch shows this case.

      To resolve this problem, I added a new metaTransitionExecutor to execute meta region transition report only, and all the other region's report are executed in priority handlers, separating them from user's requests.


        1. HBASE-21754v2.patch
          27 kB
          Allan Yang
        2. HBASE-21754.patch
          25 kB
          Allan Yang

          Issue Links



              • Assignee:
                allan163 Allan Yang
                allan163 Allan Yang
              • Votes:
                0 Vote for this issue
                3 Start watching this issue


                • Created: