XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 2.5.0, 3.0.0-alpha-2
    • Client, meta
    • None
    • Reviewed
    • Hide
      Introduced a RpcConnectionRegistry.

      Config 'hbase.client.bootstrap.servers' to set up the initial bootstrap nodes. The registry will refresh the bootstrap server periodically or on errors. Notice that, masters and region servers both implement the necessary rpc interface so you are free to config either masters or region servers as the initial bootstrap nodes.
      Show
      Introduced a RpcConnectionRegistry. Config 'hbase.client.bootstrap.servers' to set up the initial bootstrap nodes. The registry will refresh the bootstrap server periodically or on errors. Notice that, masters and region servers both implement the necessary rpc interface so you are free to config either masters or region servers as the initial bootstrap nodes.

    Description

      Usually region server will be deployed on machines which are more powerful than masters, so it will be good to let region servers carries more load.

      Background

      This is preliminary work needed for one of the splittable meta designs. We want to hide the implementation of ROOT from the client side, by adding new methods in ClientMetaService for locating meta Regions.

      One of the concerns is that the original implementation of the Master Registery over in HBASE-18095 puts master inline in the normal read/write path, which is not always a good choice. This issue aims to move the ConnectionRegistry off of the masters.

      In this issue, we let the region server implement the ClientMetaService interface, so the client could also get the cluster id, active master, meta region location, etc. from RegionServers (and not just Masters as it is currently).

      We introduce a new method getBootstrapNodes in ClientMetaService, for refreshing the bootstrap nodes periodically or on error. The new RpcConnectionRegistry will use this method to refresh the bootstrap nodes, while the old MasterRegistry will use the getMasters method to refresh the ‘bootstrap’ nodes.

      The getBootstrapNodes method will return all the region servers, so after the first refreshing, the client will go to region servers for later rpc calls. But since masters and region servers both implement the ClientMetaService interface, it is free for the client to configure master as the initial bootstrap nodes.

      Attachments

        Issue Links

          Activity

            People

              zhangduo Duo Zhang
              zhangduo Duo Zhang
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: