goraft sendSnapshotRequest use
Я просмотрел код goraft, но не знаю когда sendSnapshotRequest
сработает.
func (p *Peer) flush() {
//debugln("peer.heartbeat.flush: ", p.Name)
prevLogIndex := p.getPrevLogIndex()
term := p.server.currentTerm
entries, prevLogTerm := p.server.log.getEntriesAfter(prevLogIndex, p.server.maxLogEntriesPerRequest)
if entries != nil {
// i know this is the heart beat
p.sendAppendEntriesRequest(newAppendEntriesRequest(term, prevLogIndex, prevLogTerm, p.server.log.CommitIndex(), p.server.name, entries))
} else {
// when this whill trigger
p.sendSnapshotRequest(newSnapshotRequest(p.server.name, p.server.snapshot))
}
}
Кто-нибудь может объяснить это? Спасибо