The related issue is HBASE-15549, where we decided to not let HMaster carry regions.
After some prior works, such as modifying balancer, refactoring connection registry, replementing maintenance mode related code, etc, now we arrive the last step, where we could finally decouple HMaster and HRegionServer, which means now HMaster does not need to extends HRegionServer any more. This could greatly reduce the complexity of the code in both HMaster and HRegionServer. The current code is very very flaky as it is very easy to introduce cyclic dependencies and hang the start up of HMaster, as when starting a HRegionServer, we need to register to HMaster first but HMaster itself is a HRegionServer... The last PR is https://github.com/apache/hbase/pull/3612 It is kinda big so I posted this email here to attract more reviewers. Feel free to reply here directly or on the PR about your thoughts. Thanks. Regards
