Bryan Beaudreault created HBASE-28131:
-----------------------------------------
Summary: CatalogReplicaMode.LOAD_BALANCE introduces a client
dependency on the active master
Key: HBASE-28131
URL: https://issues.apache.org/jira/browse/HBASE-28131
Project: HBase
Issue Type: Bug
Affects Versions: 2.5.5, 2.4.17
Reporter: Bryan Beaudreault
This only a 2.x releases, and only usages of MetaTableAccessor. It's hard to
trace all of the overloads of the scanMeta method in there, but it is at the
very least exposed to clients via RegionLocator.getAllRegionLocations().
The code in AsyncTable and normal ConnectionImplementation meta scans (i.e.
looking up a single location) both use a CatalogReplicaLoadBalanceSelector
which fetches the meta locations from the ConnectionRegistry. Those do not have
a dependency on master unless you define the RpcConnectionRegistry to hit
master.
The way MetaTableAccessor works is to call getMetaTable(conn) to get an HTable,
then table.getDescriptor() and parses the getRegionReplication() method. The
call to getDescriptor() hits the active HMaster.
We should fix MetaTableAccessor to use the same connection registry based
lookup of meta replicas.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)