目前在做6.824的lab2.发现课程和论文里都提到通过随机选举超时时间的方式,减少选举冲突.那么在什么时刻去修改这个时间是合适的呢?我目前的做法是在Make阶段对每个节点随机.然后选举成功成为leader的时候再次修改一次.
func (rf *Raft) setElectionTime() {
t := time.Now()
t = t.Add(electionTime)
ms := rand2.Int63() % 300
//随机后的超时时间
t = t.Add(time.Duration(ms) * time.Millisecond)
rf.electionTime = t
}
写了这样一个方法