You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by GitBox <gi...@apache.org> on 2019/11/01 07:25:26 UTC

[GitHub] [hbase] bharathv opened a new pull request #781: HBASE-18095: Zookeeper-less client connection implementation

bharathv opened a new pull request #781: HBASE-18095: Zookeeper-less client connection implementation
URL: https://github.com/apache/hbase/pull/781
 
 
   Generally when a HBaseClient tries to create a cluster
   Connection, it fetches a bunch of metadata from Zookeeper
   (like active master address, clusterID, meta locations etc)
   before it creates the underlying transport. However exposing
   ZK to all the clients is a DDOS risk and ZK connections in
   the past have caused issues by not timing out on blocking
   RPCs (more context in the JIRA).
   
   This patch attempts to remove this ZK dependency by making
   the client fetch all the meta information directly from list
   of client configured HMaster endpoints. The patch adds a
   a new AsyncRegistry implementation that encapsulates this logic
   of fetching this meta information from the provided master
   end points. New RPCs are added to the HMasters to help fetch
   this information.
   
   Meta HRL caching:
   ----------------
   One critical piece of metadata needed by clients to query tables
   is meta HRegionLocations. These are fetched from ZK by default.
   Since this patch moves away from ZK, it adds an in-memory cache
   of these locations on both Active/StandBy HMasters. ZK Listeners
   are registered to keep the cache up-to-date.
   
   New client configs:
   ------------------
   - 'hbase.client.asyncregistry.masteraddrs' Should be set to a
   list of comma separated HMaster host:port addresses.
   - Should be used in conjunction with 'hbase.client.registry.impl'
   set to HMasterAsyncRegistry class.
   
   * Testing is still a WIP. Error paths are missing (ex: a master is
   not accessible etc).

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services