From 96fde55a0f81333f58dd29443ea88bd9a9b58063 Mon Sep 17 00:00:00 2001 From: Yicheng Qin Date: Tue, 10 Feb 2015 00:01:12 -0800 Subject: [PATCH] rafthttp: not send 0-entry MsgApp using stream It is not sent out because it is useless to let remote raft step the message. Moreover, MsgApp stream reader can always assume that the length of entries sent is > 0. --- rafthttp/streamer.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/rafthttp/streamer.go b/rafthttp/streamer.go index bce660817..55bbfa8c3 100644 --- a/rafthttp/streamer.go +++ b/rafthttp/streamer.go @@ -194,6 +194,12 @@ func (s *streamWriter) handle(w WriteFlusher) { ew := newEntryWriter(w, s.to) defer ew.stop() for ents := range s.q { + // Considering Commit in MsgApp is not recovered when received, + // zero-entry appendEntry messages have no use to raft state machine. + // Drop it here because it is useless. + if len(ents) == 0 { + continue + } start := time.Now() if err := ew.writeEntries(ents); err != nil { log.Printf("rafthttp: encountered error writing to server log stream: %v", err) @@ -289,12 +295,6 @@ func (s *streamReader) handle(r io.Reader) { } return } - // Considering Commit in MsgApp is not recovered, zero-entry appendEntry - // messages have no use to raft state machine. Drop it here because - // we don't have easy way to recover its Index easily. - if len(ents) == 0 { - continue - } // The commit index field in appendEntry message is not recovered. // The follower updates its commit index through heartbeat. msg := raftpb.Message{