Commit Graph

28 Commits

Author SHA1 Message Date
147fd614ce The initial term=0 log entry is now initially unstable.
This entry is now persisted through the normal flow instead of appearing
in the stored log at creation time.  This is how things worked before
the Storage interface was introduced. (see coreos/etcd#1689)
2014-11-12 18:24:16 -05:00
76a3de9a33 Require a non-nil Storage parameter in newLog.
Callers must in general have a reference to their Storage objects to
transfer entries from Ready to Storage, so it doesn't make sense to
create a hidden Storage for them.

By explicitly creating Storage objects in tests we can remove a
few casts of raftLog's storage field.
2014-11-12 16:38:50 -05:00
25b6590547 raft: introduce log storage interface.
This change splits the raftLog.entries array into an in-memory
"unstable" list and a pluggable interface for retrieving entries that
have been persisted to disk. An in-memory implementation of this
interface is provided which behaves the same as the old version;
in a future commit etcdserver could replace the MemoryStorage with
one backed by the WAL.
2014-11-10 17:40:39 -05:00
21987c8701 raft: remove raftLog.resetUnstable and resetNextEnts
These methods are no longer used outside of tests and are redundant with
the new stableTo and appliedTo methods.
2014-11-06 17:18:00 -05:00
738da2b3fa raft: fix a incorrect in testMaybeAppend 2014-10-29 14:57:39 -07:00
14f4163e41 raft: add several test cases for testMaybeAppend 2014-10-29 14:35:13 -07:00
ad1718a3e5 raft: add a test case for testLogMaybeAppend 2014-10-29 11:44:18 -07:00
c6873c1eab raft: add tests for maybeappend 2014-10-28 15:07:49 -07:00
460d6490ba raft: address issues in comments 2014-10-27 14:20:42 -07:00
94f701cf95 raft: refactor isUpToDate and add a test 2014-10-25 20:34:14 -07:00
90f26e4a56 raft: add test for findConflict 2014-10-25 18:58:11 -07:00
7a4d42166b *: add license header to all source files 2014-10-17 15:41:22 -07:00
af5b8c6c44 raft: int64 -> uint64 2014-10-09 14:26:43 +08:00
d31443f5a3 raftLog: compact applied entries only
compact MUST happen on entries that have been applied, or
1. it may screw up the log by setting wrong commitIndex
2. discard unapplied entries
2014-09-12 11:34:08 -07:00
e8e588c67b raft: move protobufs into raftpb 2014-09-03 09:20:17 -07:00
134a962222 raft: move raft2 to raft 2014-09-03 09:20:14 -07:00
0453d09af6 raft: moved into new raft 2014-09-03 09:20:11 -07:00
f03c3bce05 raft: seperate dequeuing from slicing 2014-09-03 09:20:11 -07:00
ba63cf666d raft: add recover 2014-09-03 09:20:02 -07:00
54b4f52e48 raft: add index to entry 2014-09-03 09:20:01 -07:00
e850c644da raft: return offset for unstableEnts 2014-09-03 09:19:58 -07:00
609e13a240 raft: add node.Unstable
Be able to return all unstable log entries. Application must store unstable
log entries before send out any messages after calling step.
2014-09-03 09:19:58 -07:00
1288e1f39d raft: log->raftlog 2014-09-03 09:19:58 -07:00
447d7dc51b raft: fix log append; add tests 2014-09-03 09:19:49 -07:00
30f4d9faea raft: change index and term to int64 2014-09-03 09:05:14 -07:00
2a11c1487c raft: sm.compact and sm.restore 2014-09-03 09:05:12 -07:00
064004b899 raft: add log compact 2014-09-03 09:05:12 -07:00
6a232dfc13 raft: add offset for log 2014-09-03 09:05:12 -07:00