This JIRA intends to revisit the patches committed for
HADOOP-7455 and HDFS-1974 & to provide more generic interfaces which allows alternative HA implementations to co-exist complying with HAServiceProtocol.
Some of the considerations are
1) Support life cycle methods (start*() and stop() APIs) in HAServiceProtocol
2) Support custom states in HAServiceProtocol
3) As per the patch submitted for
HDFS-1974, Namenode implements HAService interface. This needs to be reconsidered.
I will elaborate on these points, in the form of comments below.