raft: move good case of truncateAndAppend to the first place

This commit is contained in:
Xiang Li 2014-12-02 13:05:55 -08:00
parent 411063e14f
commit b7ca56e3c8

View File

@ -105,16 +105,16 @@ func (u *unstable) restore(s pb.Snapshot) {
func (u *unstable) truncateAndAppend(after uint64, ents []pb.Entry) {
switch {
case after == u.offset+uint64(len(u.entries))-1:
// after is the last index in the u.entries
// directly append
u.entries = append(u.entries, ents...)
case after < u.offset:
log.Printf("raftlog: replace the unstable entries from index %d", after+1)
// The log is being truncated to before our current offset
// portion, so set the offset and replace the entries
u.offset = after + 1
u.entries = ents
case after == u.offset+uint64(len(u.entries))-1:
// after is the last index in the u.entries
// directly append
u.entries = append(u.entries, ents...)
default:
// truncate to after and copy to u.entries
// then append