[ https://issues.apache.org/jira/browse/HBASE-4298?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13140455#comment-13140455 ]
Aravind Gottipati commented on HBASE-4298: ------------------------------------------ I haven't had the time to figure out how to write unit tests for this, but here are the test cases I ran through. Setup a cluster with 5 or more region servers and a bunch of regions. 1. Mark a server (server A) as draining (using zkCli) and then shutdown a different server (server B) - check to make sure that server A does not get any more new regions. 2. Mark a server (server A) as draining (using zkCli) and then go through all the regions on that server and assign them (from the cli), they should all end up on different servers and by the end, server A should not have any regions left on it. 3. Mark a server (server A) as draining (using zkCli), disable the balancer and drain server A (as in step 2). Then enable the balancer again and verify that server A does not get any new regions. 4. Remove the server (server A) from the draining list, and check that it gets regions when the balancer next runs. I ran through other scenarios/tests like this, but with multipls servers in the draining list. We could probably repeat the above tests, but with two servers in the drain list.. > Support to drain RS nodes through ZK > ------------------------------------ > > Key: HBASE-4298 > URL: https://issues.apache.org/jira/browse/HBASE-4298 > Project: HBase > Issue Type: Improvement > Components: master > Affects Versions: 0.90.4 > Environment: all > Reporter: Aravind Gottipati > Priority: Critical > Labels: patch > Fix For: 0.92.0, 0.90.5 > > Attachments: 4298-trunk-v2.txt, 90_hbase.patch, trunk_hbase.patch > > > HDFS currently has a way to exclude certain datanodes and prevent them from > getting new blocks. HDFS goes one step further and even drains these nodes > for you. This enhancement is a step in that direction. > The idea is that we mark nodes in zookeeper as draining nodes. This means > that they don't get any more new regions. These draining nodes look exactly > the same as the corresponding nodes in /rs, except they live under /draining. > Eventually, support for draining them can be added. I am submitting two > patches for review - one for the 0.90 branch and one for trunk (in git). > Here are the two patches > 0.90 - > https://github.com/aravind/hbase/commit/181041e72e7ffe6a4da6d82b431ef7f8c99e62d2 > trunk - > https://github.com/aravind/hbase/commit/e127b25ae3b4034103b185d8380f3b7267bc67d5 > I have tested both these patches and they work as advertised. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira