mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00

It is reasonable for the leader to wait for the reply before sending out the next msgApp or msgSnap for the follower in bad path. Or the leader will send out useless messages if the previous message is rejected or the previous message is a snapshot. Especially for the snapshot case, the leader will be 100% to send out duplicate message including the snapshot, which is a huge waste. This commit implement a timeout based wait mechanism. The timeout for normal msgApp is a heartbeatTimeout and the timeout for snapshot is electionTimeout(snapshot is larger). We can implement a piggyback mechanism(application notifies the msg lost) in the future if necessary.