Duo Zhang created HBASE-26245:
---------------------------------

             Summary: Store region server list in master local region
                 Key: HBASE-26245
                 URL: https://issues.apache.org/jira/browse/HBASE-26245
             Project: HBase
          Issue Type: Brainstorming
          Components: master, Zookeeper
            Reporter: Duo Zhang


Just a simple idea still need to be polished.

For large clusters, ZooKeeper could be a bottle neck, there are some related 
issues to not track region server list as much as possible, but what if we want 
to do more, just do not register region server on zk?

I think, zookeeper here is act as something like a service registry, we need 
the list to get all the region servers, and also need to know the changes of 
the list.
But in fact, we could also kill region server from master side, so the latter 
one could be done by a periodical heartbeat check daemon on master. And for the 
former one, we could store the list in master local region, so when master 
restart, it could setup the region server list by load from master local region.

And there are mainly two other side effect which are good:
1. We do not need to list the WAL directory on HDFS to find the previous region 
servers, for scheduling SCP. This could make it possible to restart a new HBase 
cluster based on only the root directory.
2. For now, region server needs to register to HMaster first, and then put its 
node on ZooKeeper, if it fails between these two actions, there is no way for 
HMaster to clean this dead server, as it never expires on ZooKeeper. There 
should be a related issue. If we just do not store a node on zk, then this 
problem is also gone.

Of course, there will still be lots of other problems, like whether we need 
another heartbeat call as reportForDuty is a bit heavy as we also report the 
region list, etc.



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

Reply via email to