As you know, gossip convergence occurs when all nodes are visible (i.e. all member nodes are in the visible Gossip event list). If the cluster does not converge, ClusterDeamon speeds up gossip.
def gossipTick(): Unit = {
gossip()
if (isGossipSpeedupNeeded) {
scheduler.scheduleOnce(GossipInterval / 3, self, GossipSpeedupTick)
scheduler.scheduleOnce(GossipInterval * 2 / 3, self, GossipSpeedupTick)
}
}
def isGossipSpeedupNeeded: Boolean =
(latestGossip.overview.seen.size < latestGossip.members.size / 2)
. . .