Igniters, Have just back merged the changes into the main development branch. Thanks Yakov and Dmitriy for spending your time on review!
From now it’s possible to detect failures at cluster nodes' discovery/communication/network levels by altering a single parameter - IgniteConfiguration.failureDetectionTimeout. By setting the failure detection timeout for a server node it will be possible to detect failed nodes in a cluster topology during the time equal to timeout's value and switch to/keep working with only alive nodes. By setting the timeout for a client node will let us to detect failures between the client and its router node (a server node that is a part of a topology). In addition, bunch of other improvements and simplifications were done at the level of TcpDiscoverySpi and TcpCommunicationSpi. Changes are aggregated here: https://issues.apache.org/jira/browse/IGNITE-752 <https://issues.apache.org/jira/browse/IGNITE-752> — Denis