akka/akka — pull request #1701 by patriknw (2013-09-02 17:41:31+00:00)
Title: !clu #2307 Allow transition from unreachable to reachable

Not everything in place, but should be a good start.

* Replace unreachable Set with Reachability table
* Unreachable members stay in member Set
* Downing a live member was moved it to the unreachable Set,
and then removed from there by the leader. That will not
work when flipping back to reachable, so a Down member must
be detected as unreachable before beeing removed. Similar
to Exiting. Member shuts down itself if it sees itself as
Down.
* Flip back to reachable when failure detector monitors it as
available again
* ReachableMember event
* Can't ignore gossip from aggregated unreachable (see SurviveNetworkInstabilitySpec)
* Make use of ReachableMember event in cluster router
* End heartbeat when acknowledged, EndHeartbeatAck
* Remove nr-of-end-heartbeats from conf
* Full reachability info in JMX cluster status
* Don't use interval after unreachable for AccrualFailureDetector history

TODO:
[ ] Decide how to integrate with quarantine, Reachability.Terminated (I will open thread on akka-dev)
[ ] Update documentation
[ ] Maybe more optimizations?
[ ] Create ticket for timeout based auto-down
[ ] Create ticket forced join during split