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

Pass region info in LoadBalancer.randomAssignment(List<ServerName> servers)

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.92.0
    • 0.95.0
    • None
    • None
    • Reviewed

    Description

      In LB there is randomAssignment(List<ServerName servers>) API which will be used by AM to assign
      a region from a down RS. [This will be also used in other cases like call to assign() API from client]
      I feel it would be better to pass the HRegionInfo also into this method. When the LB making a choice for a region
      assignment, when one RS is down, it would be nice that the LB knows for which region it is doing this server selection.

      Scenario
      While one RS down, we wanted the regions to get moved to other RSs but a set of regions stay together. We are having custom load balancer but with the current way of LB interface this is not possible. Another way is I can allow a random assignment of the regions at the RS down time. Later with a cluster balance I can balance the regions as I need. But this might make regions assign 1st to one RS and then again move to another. Also for some time period my business use case can not get satisfied.

      Also I have seen some issue in JIRA which speaks about making sure that Root and META regions always sit in some specific RSs. With the current LB API this wont be possible in future.

      Attachments

        1. HBase-5510.patch
          2 kB
          Anoop Sam John
        2. HBase-5510_2.patch
          2 kB
          Anoop Sam John
        3. HBase-5010_3.patch
          2 kB
          Anoop Sam John

        Activity

          People

            anoopsamjohn Anoop Sam John
            anoopsamjohn Anoop Sam John
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: