[
https://issues.apache.org/jira/browse/HBASE-26029?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Duo Zhang updated HBASE-26029:
------------------------------
Component/s: Zookeeper
Replication
> It is not reliable to use nodeDeleted event to track region server's death
> --------------------------------------------------------------------------
>
> Key: HBASE-26029
> URL: https://issues.apache.org/jira/browse/HBASE-26029
> Project: HBase
> Issue Type: Bug
> Components: Replication, Zookeeper
> Reporter: Duo Zhang
> Assignee: Duo Zhang
> Priority: Critical
>
> When implementing HBASE-26011, [~sunxin] pointed out an interesting scenario,
> where a region server up and down between two sync requests, then we can not
> know the death of the region server.
> https://github.com/apache/hbase/pull/3405#discussion_r656720923
> This is a valid point, and when thinking of a solution, I noticed that, the
> current zk iplementation has the same problem. Notice that, a watcher on zk
> can only be triggered once, so after zk triggers the watcher, and before you
> set a new watcher, it is possible that a region server is up and down, and
> you will miss the nodeDeleted event for this region server.
> I think, the general approach here, which could works for both master based
> and zk based replication tracker is that, we should not rely on the tracker
> to tell you which region server is dead. Instead, we just provide the list of
> live regionservers, and the upper layer should compare this list with the
> expected list(for replication, the list should be gotten by listing
> replicators), to detect the dead region servers.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)