69 Commits

Author SHA1 Message Date
Xiang Li
bd4cfa2a07 raft: add handleHeartbeat
handleHeartbeat commits to the commit index in the message. It never decreases the
commit index of the raft state machine.
2014-11-18 08:34:06 -08:00
Yicheng Qin
7d0ffb3f12 raft: not set applied when restored from snapshot
applied is only updated by application level through Advance.
2014-11-14 12:08:39 -08:00
Yicheng Qin
7dba92dd53 raft: update unstable when calling stableTo with 0
It should update unstable in this case because it may happen that raft
only writes entry 0 into stable storage.
2014-11-11 17:20:31 -08:00
Ben Darnell
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
Xiang Li
0d7c43d885 *: add a Advance interface to raft.Node
Node set the applied to committed right after it sends out Ready to application. This is not
correct since the application has not actually applied the entries at that point. We add a
Advance interface to Node. Application needs to call Advance to tell raft Node its progress.
Also this change can avoid unnecessary copying when application is still applying entires but
there are more entries to be applied.
2014-11-05 15:04:14 -08:00
Yicheng Qin
421d5fbe72 raft: add tests based on section 5.3 in raft paper 2014-10-31 16:32:34 -07:00
Xiang Li
738da2b3fa raft: fix a incorrect in testMaybeAppend 2014-10-29 14:57:39 -07:00
Xiang Li
74c257f63d Merge pull request #1419 from xiangli-cmu/raft_log_test
raft: add test for findConflict
2014-10-27 14:30:36 -07:00
Xiang Li
460d6490ba raft: address issues in comments 2014-10-27 14:20:42 -07:00
Xiang Li
94f701cf95 raft: refactor isUpToDate and add a test 2014-10-25 20:34:14 -07:00
Xiang Li
8cd95e916d raft: comments for isUpToDate 2014-10-25 20:12:54 -07:00
Xiang Li
86c66cd802 raft: remove unused code 2014-10-25 19:56:13 -07:00
Xiang Li
90f26e4a56 raft: add test for findConflict 2014-10-25 18:58:11 -07:00
Soheil Hassas Yeganeh
09e9618b02 raft: change raftLog.maybeAppend to return the last new index
As per @unihorn's comment on #1366, we change raftLog.maybeAppend to
return the last new index of entries in maybeAppend.
2014-10-23 15:42:47 -04:00
Yicheng Qin
e200d2a8e2 etcdserver/raft: remove msgDenied, removedNodes, shouldStop
The future plan is to do all these in etcdserver level.
2014-10-20 15:13:18 -07:00
Jonathan Boulle
7a4d42166b *: add license header to all source files 2014-10-17 15:41:22 -07:00
Jonathan Boulle
fc42bdb904 raft: remove unused compactThreshold 2014-10-16 17:11:10 -07:00
Xiang Li
af5b8c6c44 raft: int64 -> uint64 2014-10-09 14:26:43 +08:00
Xiang Li
7b61565c0a raft: save removed nodes in snapshot 2014-10-08 15:33:55 +08:00
Xiang Li
b3c1bd5616 raft: commitIndex=min(leaderCommit, index of last new entry) 2014-09-29 14:38:17 -07:00
Xiang Li
ab61a8aa9a *: init for on disk snap support 2014-09-17 13:56:12 -07:00
Yicheng Qin
140fd6d6c4 raft: restart using last written entry also 2014-09-15 09:56:33 -07:00
Yicheng Qin
a9af70c52b raft: write entry 0 into log 2014-09-15 09:55:52 -07:00
Yicheng Qin
072a21782e Merge pull request #1049 from unihorn/120
raftLog: enhance check in compact
2014-09-12 11:35:41 -07:00
Yicheng Qin
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
Brandon Philips
3bc4b2db12 raft: log comment grammar fix 2014-09-11 13:59:50 -07:00
Xiang Li
eaffaacf5e raft: do not need to copy committed entries 2014-09-09 14:09:30 -07:00
Jonathan Boulle
9997c9488a *: fix a few small issues identified by go vet 2014-09-08 23:52:36 -07:00
Blake Mizerany
8d9b7b1680 raft: remove entry type 2014-09-03 15:24:47 -07:00
Blake Mizerany
8463421448 raft: remove configuration 2014-09-03 15:23:05 -07:00
Blake Mizerany
e8e588c67b raft: move protobufs into raftpb 2014-09-03 09:20:17 -07:00
Blake Mizerany
ddd219f297 many: marshal message 2014-09-03 09:20:16 -07:00
Blake Mizerany
4aa15294a8 raft: re-remove clusterId from raft 2014-09-03 09:20:14 -07:00
Blake Mizerany
134a962222 raft: move raft2 to raft 2014-09-03 09:20:14 -07:00
Blake Mizerany
0453d09af6 raft: moved into new raft 2014-09-03 09:20:11 -07:00
Blake Mizerany
f03c3bce05 raft: seperate dequeuing from slicing 2014-09-03 09:20:11 -07:00
Yicheng Qin
a28dc4559b raft/etcd: recover node 2014-09-03 09:20:10 -07:00
Xiang Li
a5df254e53 raft: add clusterId to snapshot 2014-09-03 09:20:08 -07:00
Yicheng Qin
ba63cf666d raft: add recover 2014-09-03 09:20:02 -07:00
Xiang Li
6030261363 etcd/raft: add snap 2014-09-03 09:20:02 -07:00
Xiang Li
38ec659cd6 raft: make Entry a protobuf type 2014-09-03 09:20:01 -07:00
Xiang Li
54b4f52e48 raft: add index to entry 2014-09-03 09:20:01 -07:00
Xiang Li
b383cd5acf raft: refactor recover 2014-09-03 09:19:59 -07:00
Yicheng Qin
e850c644da raft: return offset for unstableEnts 2014-09-03 09:19:58 -07:00
Xiang Li
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
Xiang Li
1288e1f39d raft: log->raftlog 2014-09-03 09:19:58 -07:00
Xiang Li
c7d1beaaa5 raft: add first level logging
We log the message to step and the state of the statemachine before and after
stepping the message.
2014-09-03 09:19:58 -07:00
Xiang Li
2665cc1cc8 raft: heartbeat should not contain entries 2014-09-03 09:19:57 -07:00
Xiang Li
060de128a7 raft: add clusterId 2014-09-03 09:19:56 -07:00
Xiang Li
447d7dc51b raft: fix log append; add tests 2014-09-03 09:19:49 -07:00