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

During a cluster restart, Hmaster thinks it is a failover by mistake

VotersStop watchingWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.0.0
    • 2.0.0
    • master
    • None
    • Reviewed

    Description

      We often need to do cluster restart as part of release for a cluster of > 1000 nodes. We have tried our best to get clean shutdown but 50% of the time, hmaster still thinks it is a failover. This increases the restart time from 5 min to 30 min and decreases locality from 99% to 5% since we didn't use a locality-aware balancer. We had a bug HBASE-14129 but the fix didn't work.

      After adding more logging and inspecting the logs, we identified two things that trigger the failover handling:
      1. When Hmaster.AssignmentManager detects any dead servers on service manager during joinCluster(), it determines this is a failover without further check. I added a check whether there is even any region assigned to these servers. During a clean restart, the regions are not even assigned.
      2. When there are some leftover empty folders for log and split directories or empty wal files, it is also treated as a failover. I added a check for that. Although this can be resolved by manual cleanup, it is still too tedious for restarting a large cluster.

      Patch will follow shortly. The fix is tested and used in production now.

      Attachments

        1. HBASE-15251-master.patch
          6 kB
          Clara Xiong
        2. HBASE-15251-master-v1.patch
          7 kB
          Clara Xiong

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            claraxiong Clara Xiong
            claraxiong Clara Xiong
            Votes:
            0 Vote for this issue
            Watchers:
            15 Stop watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment