mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
TickQuiesced allows the caller to support "quiesced" Raft groups which do not perform periodic heartbeats and elections. This is useful in a system with thousands of Raft groups where these periodic operations can be overwhelming in an otherwise idle system. It might seem possible to avoid advancing the logical clock at all in such Raft groups, but doing so has an interaction with the CheckQuorum functionality. If a follower is not quiesced while the leader is the follower can call an election that will fail because the leader's lease has not expired (electionElapsed < electionTimeout). The next time the leader sends a heartbeat to this follower the follower will see that the heartbeat is from a previous term and respond with a MsgAppResp. This in turn will cause the leader to step down and become a follower even though there isn't a leader in the group. By allowing the leader's logical clock to advance via TickQuiesced, the leader won't reject the election and there will be a smooth transfer of leadership to the follower.
8.1 KiB
8.1 KiB