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

Optimize the rolling restart script

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Not A Problem
    • 0.95.2
    • None
    • regionserver, scripts
    • None

    Description

      There is a graceful_stop script. This algorithm:

      for i = 0 to servers.size {
       regionsInServer = servers[i].regions
       move servers[i].regions to random
       stop servers[i]
       start servers[i]
       move regionsInServer to servers[i] //filled back with the same regions
      }
      

      It would be possible to optimize it while keeping data locality with

      for i = 0 to servers.size {
       start servers[i*2+1] on the computer of servers[i] // Two RS on the same box
       move servers[i].regions to servers[i*2+1]  // The one on the same box
       stop servers[i]
      }
      

      There would be an impact with a fixed port configuration. To fix this, we could:

      • use a range of port instead of a single port. This could be an issue for the web port.
      • start on a port then reuse the fixed ones when they become available. This is not very elegant if a client code is already using the previous code. Moreover the region server code is written in the meta table.
      • do a mix of the two solutions: a range for the server itself, while waiting for the web port to be available.

      To be discussed...

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              nkeywal Nicolas Liochon
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: