Browse Source

Merge pull request #2272 from yichengq/324

rafthttp: not send 0-entry MsgApp using stream
Yicheng Qin 11 years ago
parent
commit
9ec8ea47c8
1 changed files with 6 additions and 6 deletions
  1. 6 6
      rafthttp/streamer.go

+ 6 - 6
rafthttp/streamer.go

@@ -194,6 +194,12 @@ func (s *streamWriter) handle(w WriteFlusher) {
 	ew := newEntryWriter(w, s.to)
 	ew := newEntryWriter(w, s.to)
 	defer ew.stop()
 	defer ew.stop()
 	for ents := range s.q {
 	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()
 		start := time.Now()
 		if err := ew.writeEntries(ents); err != nil {
 		if err := ew.writeEntries(ents); err != nil {
 			log.Printf("rafthttp: encountered error writing to server log stream: %v", err)
 			log.Printf("rafthttp: encountered error writing to server log stream: %v", err)
@@ -289,12 +295,6 @@ func (s *streamReader) handle(r io.Reader) {
 			}
 			}
 			return
 			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 commit index field in appendEntry message is not recovered.
 		// The follower updates its commit index through heartbeat.
 		// The follower updates its commit index through heartbeat.
 		msg := raftpb.Message{
 		msg := raftpb.Message{