As some sort of follow-up or initial step towards HBASE-10296.
Whatever consensus algorithm/library may be the chosen, perhaps one of first practical steps towards this goal would be to better abstract ZK-related API and details, which are now throughout the codebase (mostly leaked throuth ZkUtil, ZooKeeperWatcher and listeners).
This jira is umbrella for relevant subtasks. Design doc is attached, for comments/questions there's a google doc linked.
This issue covers phase-1 of abstraction work, which includes:
- infrastructure to support pluggable coordinated state managers
- abstraction of region opening/closing/splitting/merging operations
- abstraction of admin operation handlers like CreateTableHandler
- abstract ZKTable (reworked it to interface and implementation, allowing for new system tables-based impl to be developed)
- WAL splitting abstraction.