[ 
https://issues.apache.org/jira/browse/HBASE-26181?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Stack updated HBASE-26181:
----------------------------------
    Description: 
As they already cached everything for connection registry in memory, the 
cluster connection can fetch the in memory data directly instead of go to 
zookeeper again.

This is an optimization to reduce the pressure on zookeeper.

For MasterRegistry, we do not want to use it as the ConnectionRegistry for our 
cluster connection because:

    // We use ZKConnectionRegistry for all the internal communication, 
primarily for these reasons:

    // - Decouples RS and master life cycles. RegionServers can continue be up 
independent of

    //   masters' availability.

    // - Configuration management for region servers (cluster internal) is much 
simpler when adding

    //   new masters or removing existing masters, since only clients' config 
needs to be updated.

    // - We need to retain ZKConnectionRegistry for replication use anyway, so 
we just extend it for

    //   other internal connections too.

The above comments are in our code, in the HRegionServer.cleanupConfiguration 
method.

But since now, masters and regionservers both implement the ClientMetaService 
interface, we are free to just let the ConnectionRegistry to make use of these 
in memory information directly, instead of going to zookeeper again.

  was:As they already cached everything for connection registry in memory, the 
cluster connection can fetch the in memory data directly instead of go to 
zookeeper again.


> Region server and master could use itself as ConnectionRegistry
> ---------------------------------------------------------------
>
>                 Key: HBASE-26181
>                 URL: https://issues.apache.org/jira/browse/HBASE-26181
>             Project: HBase
>          Issue Type: Sub-task
>          Components: master, regionserver
>            Reporter: Duo Zhang
>            Priority: Major
>
> As they already cached everything for connection registry in memory, the 
> cluster connection can fetch the in memory data directly instead of go to 
> zookeeper again.
> This is an optimization to reduce the pressure on zookeeper.
> For MasterRegistry, we do not want to use it as the ConnectionRegistry for 
> our cluster connection because:
>     // We use ZKConnectionRegistry for all the internal communication, 
> primarily for these reasons:
>     // - Decouples RS and master life cycles. RegionServers can continue be 
> up independent of
>     //   masters' availability.
>     // - Configuration management for region servers (cluster internal) is 
> much simpler when adding
>     //   new masters or removing existing masters, since only clients' config 
> needs to be updated.
>     // - We need to retain ZKConnectionRegistry for replication use anyway, 
> so we just extend it for
>     //   other internal connections too.
> The above comments are in our code, in the HRegionServer.cleanupConfiguration 
> method.
> But since now, masters and regionservers both implement the ClientMetaService 
> interface, we are free to just let the ConnectionRegistry to make use of 
> these in memory information directly, instead of going to zookeeper again.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to