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))
    }
}

Кто-нибудь может объяснить это? Спасибо

0 ответов

Другие вопросы по тегам