This came up in the review for HBASE-15128, but we thought that we should surface this discussion in dev@.
The idea for HBASE-15128 is that, we should have a dynamic switch in master so that the operator (or HBCK) can disable all region splits or merges. We currently have such dynamic switches for balancer and normalizer which keep their state in zk. We also have a switch for catalog janitor which keeps its state only in memory (not sure why). For the new switches Heng Chen implemented a "set_switch" RPC to master, a switch type, a zk node. The idea is to move balancer, catalog janitor and normalizer switches to this after this patch. However, Matteo raised a point about this framework being an alternative way of doing dynamic configuration. The problem is that we do not have a dynamic conf framework that we can piggyback on, and since balancer and other switches already work this way, it does not make sense to block the issue. What do you guys think? If we want to implement dynamic conf, how would we handle things like enabling / disabling balancer from conf and or from code? Any good ideas? Enis