Sanjeet Malhotra created HBASE-30165:
----------------------------------------
Summary: AsyncRegionLocationCache.add() drops sibling replicas
when caching one HRegionLocation at a ▎ time —
addLocationToCache(HRegionLocation) corrupts multi-replica entries
Key: HBASE-30165
URL: https://issues.apache.org/jira/browse/HBASE-30165
Project: HBase
Issue Type: Improvement
Components: Client
Reporter: Sanjeet Malhotra
*Summary*
{{AsyncNonMetaRegionLocator#addLocationToCache(HRegionLocation)}} corrupts
the
client-side region location cache for any table with REGION_REPLICATION > 1.
When the same primary region's replicas are added one at a time (e.g. once
per
meta row), each addition silently *replaces* the previously cached
multi-replica
entry with a single-replica entry, leaving only the last-added replica
visible
to subsequent lookups.
*Symptom*
After a series of {{addLocationToCache(replica0)}},
{{addLocationToCache(replica1)}},
{{addLocationToCache(replica2)}} on the same primary region, the cache
contains
only {{[null, null, replica2]}} (or whichever was added last) instead of the
expected {{[replica0, replica1, replica2]}}.
This breaks any future cache hit for the lower-replica IDs of that region,
and
any cache-warming path that adds replicas individually.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)