Commit Graph

162 Commits

Author SHA1 Message Date
bffe611fe6 raft: add tests based on section 5.2 in raft paper 2014-10-29 10:17:09 -07:00
507300130b raft: add tests for ignoring heartbeat reply 2014-10-24 11:50:21 -07:00
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
7a4d42166b *: add license header to all source files 2014-10-17 15:41:22 -07:00
fc42bdb904 raft: remove unused compactThreshold 2014-10-16 17:11:10 -07:00
32c38820c1 raft: protobuf messageType 2014-10-13 11:13:43 -07:00
1eb1020717 raft: fix raft test 2014-10-09 14:42:29 +08:00
8bbbaa88b2 *: raft related int64 -> uint64 2014-10-09 14:29:21 +08:00
af5b8c6c44 raft: int64 -> uint64 2014-10-09 14:26:43 +08:00
38af14b0f4 Merge pull request #1260 from coreos/snap_rm
raft: save removed nodes in snapshot
2014-10-09 08:00:33 +08:00
73f2aaf98f raft: removedSlice -> removedNodes 2014-10-09 06:55:25 +08:00
c67fd14fe8 Merge pull request #1257 from bdarnell/cleanups
Raft: assorted cleanups (golint and go vet)
2014-10-09 05:55:21 +08:00
d2e858587f Raft: a few more improvements to test messages. 2014-10-08 15:07:11 -04:00
7b61565c0a raft: save removed nodes in snapshot 2014-10-08 15:33:55 +08:00
1cd3345e00 raft: address issues with election timeout 2014-10-08 07:41:17 +08:00
36558b1924 Raft: fix printf strings found by go vet. 2014-10-07 18:44:06 -04:00
3ad0df3722 Raft: fix problems reported by golint. 2014-10-07 18:44:06 -04:00
f65d117462 raft: add a test for randElectionTimeout 2014-10-07 20:34:15 +08:00
d7d6f84f64 raft: rand election timeout 2014-10-07 20:12:49 +08:00
45e4a8643a raft: add tests for raft.compact 2014-10-07 16:03:11 +08:00
5587e0d73f raft: compact takes index and nodes parameters
Before this commit, compact always compact log at current appliedindex of raft.
This prevents us from doing non-blocking snapshot since we have to make snapshot
and compact atomically. To prepare for non-blocking snapshot, this commit make
compact supports index and nodes parameters. After completing snapshot, the applier
should call compact with the snapshot index and the nodes at snapshot index to do
a compaction at snapsohot index.
2014-10-07 16:03:11 +08:00
01ecc60a88 Merge pull request #1203 from coreos/fix_raft
raft: commitIndex=min(leaderCommit, index of last new entry)
2014-10-03 22:24:07 +08:00
172bd7d096 raft: add test for maybeappend change 2014-10-03 22:21:35 +08:00
16ba77767e raft: do not decrease nextIndex and send entries for stale reply 2014-10-03 13:41:27 +08:00
8490904f20 Merge pull request #1224 from unihorn/149
raft: msg.Denied -> msg.Reject
2014-10-02 12:24:09 -07:00
fff918c672 raft: msg.Denied -> msg.Reject
Change the field name because it has msgDenied already.
2014-10-02 12:22:12 -07:00
182c8316e1 raft: refine comment for doc and removed list tests 2014-10-01 14:57:39 -07:00
e4a6c9651a raft: add removed
The usage of removed:
1. tell removed node about its removal explicitly using msgDenied
2. prevent removed node disrupt cluster progress by launching leader election

It is set when apply node removal, or receive msgDenied.
2014-10-01 14:57:38 -07:00
d7b4e44a66 raft: heartbeat is only response for maintaining leader dominance 2014-09-29 16:57:43 -07:00
e26ff32fd8 raft: fix error msg 2014-09-28 21:17:51 -07:00
51529cc3f2 raft: remove index field in msg AppResp 2014-09-28 21:13:53 -07:00
adefd83855 raft: remove index field in msg voteResp 2014-09-28 21:13:43 -07:00
86473d8a27 raft: add msg denied field 2014-09-28 21:13:33 -07:00
1ca03d8e9d raft: move logic to separate func 2014-09-24 10:23:44 -07:00
b07be74a82 raft: stop tickElection when the node is not in peer list
This prevents the bug like this:
1. a node sends join to a cluster and succeeds
2. it starts with empty peers and waits for sync, but it have not
received anything
3. election timeout passes, and it promotes itself to leader
4. it commits some log entry
5. its log conflicts with the cluster's
2014-09-23 23:15:02 -07:00
bc7b0108dc raft: ConfigChange -> ConfChange 2014-09-23 12:02:44 -07:00
d92931853e raft: Config -> ConfigChange
Configure -> ProposeConfigChange
AddNode, RemoveNode -> ApplyConfigChange
2014-09-22 23:39:53 -07:00
b82d70871f raft: use EntryType in protobuf 2014-09-22 15:44:46 -07:00
ff6705b94b raft: add Configure, AddNode, RemoveNode
Configure is used to propose config change. AddNode and RemoveNode is
used to apply cluster change to raft state machine. They are the
basics for dynamic configuration.
2014-09-22 15:43:13 -07:00
023dc7cba2 etcdserver: add SYNC request 2014-09-16 13:42:03 -07:00
f9c12e2053 Merge pull request #1075 from coreos/fix_heartbeat
raft: fix heartbeat
2014-09-15 10:04:12 -07:00
21d116d3e1 raft: fix heartbeat 2014-09-15 09:58:22 -07:00
e7ea6a374a main: check node id is not noneid 2014-09-14 23:28:11 -07:00
2927cc6e3b raft: refine plus assignment 2014-09-14 22:07:32 -07:00
30289dad5c raft: more descriptive panic info 2014-09-12 11:39:53 -07:00
dc1357afa9 raft: use raft helper function in testing 2014-09-11 19:26:29 -07:00
0e0fc2bd24 raft: use [1,n] as address list for raft state machines 2014-09-11 19:23:05 -07:00
84c2bd0b7d raft: set From of local message to be local id 2014-09-11 19:18:47 -07:00
4e31bb308d raft: use const firstId to track ids 2014-09-09 19:07:20 -07:00
b50f96e2e1 raft: set none to be 0 2014-09-09 16:47:21 -07:00