【发布时间】:2018-05-29 08:54:01
【问题描述】:
我在看草稿纸。
到requestvote rpc,
接收器实现: 1. 如果 term
在某些情况下,候选人的任期等于领导者的当前任期,那么领导者如何响应候选人的RequestVote rpc?
【问题讨论】:
我在看草稿纸。
到requestvote rpc,
接收器实现: 1. 如果 term
在某些情况下,候选人的任期等于领导者的当前任期,那么领导者如何响应候选人的RequestVote rpc?
【问题讨论】:
让我们用更人性化的方式来区分:
term < currentTerm),请忽略它。votedFor is null),或者如果这是我们在本学期上次投票的同一候选人 (votedFor == candidateId),那么只要该候选人投票日志是最新的。请记住,领导者在给定任期内为自己投票。
这意味着对于term == currentTerm,领导者将拥有等于自己的votedFor。这不是空的,因此它授予此投票的唯一方法是candidateId 是它自己 - 即它在当前任期内为自己投票。在所有其他情况下,它不会授予投票权。
要记住的高级事情(事实上,所有这一切的关键不变量)是服务器从不在同一任期内多次投票。一旦它对一个任期进行投票,它就是最终的。由于领导者为自己投票,因此当它收到同一任期内的其他请求时,它不会批准。
【讨论】: