raft: simplify truncateAndAppend

truncateAndAppend no need the value of 'after' with subbing one
release-3.1
zhonglin6666 2016-06-29 09:47:07 +08:00 committed by Gyu-Ho Lee
parent 8e825de35f
commit df31eab136
1 changed files with 8 additions and 8 deletions

View File

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