Need a framework to execute master-coordinated tasks in a fault-tolerant manner.
Master-coordinated tasks such as online-scheme change and delete-range (deleting region(s) based on start/end key) can make use of this framework.
The advantages of framework are
1. Eliminate repeated code in Master, ZooKeeper tracker and Region-server for master-coordinated tasks
2. Ability to abstract the common functions across Master -> ZK and RS -> ZK
3. Easy to plugin new master-coordinated tasks without adding code to core components