public class ClusterHeartbeatManager
ClusterHeartbeatManager manages the heartbeat sending and receiving
process of a node.
It periodically sends heartbeat to the other nodes and stores heartbeat timestamps
per node when a heartbeat is received from other nodes. If enabled and required, it can send
ping packets (an ICMP ping or an echo packet depending on the environment and settings).
If it detects a member is not live anymore, that member is kicked out of cluster.
Another job of ClusterHeartbeatManager is to send (if not master node) and track (if master)
master-confirmation requests. Each slave node sends a master-confirmation periodically and
master node stores them with timestamps. A slave node which does not send master-confirmation in
a timeout will be kicked out of the cluster by master node.