You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "huaxiang sun (JIRA)" <ji...@apache.org> on 2017/05/05 22:28:04 UTC
[jira] [Created] (HBASE-18005) read replica: handle the case that
region server hosting both primary replica and meta region is down
huaxiang sun created HBASE-18005:
------------------------------------
Summary: read replica: handle the case that region server hosting both primary replica and meta region is down
Key: HBASE-18005
URL: https://issues.apache.org/jira/browse/HBASE-18005
Project: HBase
Issue Type: Bug
Reporter: huaxiang sun
Assignee: huaxiang sun
Identified one corner case in testing that when the region server hosting both primary replica and the meta region is down, the client tries to reload the primary replica location from meta table, it is supposed to clean up only the cached location for specific replicaId, but it clears caches for all replicas. Please see
https://github.com/apache/hbase/blob/master/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionImplementation.java#L813
Since it takes some time for regions to be reassigned (including meta region), the following may throw exception
https://github.com/apache/hbase/blob/master/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RpcRetryingCallerWithReadReplicas.java#L173
This exception needs to be caught and it needs to get cached location (in this case, the primary replica's location is not available). If there are cached locations for other replicas, it can still go ahead to get stale values from secondary replicas.
With meta replica, it still helps to not clean up the caches for all replicas as the info from primary meta replica is up-to-date.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)