Commit Graph

130 Commits

Author SHA1 Message Date
c67fd14fe8 Merge pull request #1257 from bdarnell/cleanups
Raft: assorted cleanups (golint and go vet)
2014-10-09 05:55:21 +08:00
1cd3345e00 raft: address issues with election timeout 2014-10-08 07:41:17 +08:00
1083ce8f73 raft: remove misleading labels in array definition
Since these are arrays instead of maps, the "keys" here are actually
(useless) goto labels. What really matters is that the ordering is
the same between the constant declarations and the array.
2014-10-07 18:44:06 -04:00
3ad0df3722 Raft: fix problems reported by golint. 2014-10-07 18:44:06 -04: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
dc9cb4b4ba raft: fix send
send should not attach current term to msgProp. Send should simply do proxy for msgProp without
changing its term. msgProp has a special term 0, which indicates that it is a local message.
2014-10-06 04:48:35 +08:00
70bf464cd6 raft: add comment to decrTo 2014-10-03 13:42:34 +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
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
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
b801f1affe raft: refine comment for raft.pendingConf 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
ab61a8aa9a *: init for on disk snap support 2014-09-17 13:56:12 -07:00
023dc7cba2 etcdserver: add SYNC request 2014-09-16 13:42:03 -07:00
cc8d8f2102 raft: remove unused raftpb.LastIndex 2014-09-15 14:34:23 -07:00
f9c12e2053 Merge pull request #1075 from coreos/fix_heartbeat
raft: fix heartbeat
2014-09-15 10:04:12 -07:00
38c074cb05 Merge pull request #1067 from unihorn/122
raft: write entry 0 into log
2014-09-15 10:00:49 -07:00
21d116d3e1 raft: fix heartbeat 2014-09-15 09:58:22 -07:00
140fd6d6c4 raft: restart using last written entry also 2014-09-15 09:56:33 -07:00
e7ea6a374a main: check node id is not noneid 2014-09-14 23:28:11 -07:00
e085cc4e06 Merge pull request #1042 from unihorn/118
raft: set none to be 0
2014-09-14 22:32:37 -07:00
da575c46fa raft: remove unused field 2014-09-14 13:08:35 -07:00
98f9ee3613 raft: add useful comments
These comments were things I learned about the units, use case or
meaning of various fields and functions in the raft package.
2014-09-12 09:58:04 -07:00
b50f96e2e1 raft: set none to be 0 2014-09-09 16:47:21 -07:00
1a6e908971 *: add wal 2014-09-05 09:52:40 -07:00
8dfa490e49 raft: fix ignore term 2014-09-04 14:33:51 -07:00
8f4c615704 raft: leader should tick heartbeat 2014-09-03 22:01:31 -07:00
8d9b7b1680 raft: remove entry type 2014-09-03 15:24:47 -07:00
8463421448 raft: remove configuration 2014-09-03 15:23:05 -07:00
3c77693881 raft: make tick send out messages. all state machine actions should be taken inside step function. 2014-09-03 10:17:09 -07:00
966cfd6e8e raft: fix elapsed reset 2014-09-03 09:20:20 -07:00
d218034630 boom 2014-09-03 09:20:20 -07:00
e8e588c67b raft: move protobufs into raftpb 2014-09-03 09:20:17 -07:00
ddd219f297 many: marshal message 2014-09-03 09:20:16 -07:00
f87a6f3c1f raft: sift proposals from other message types in Step 2014-09-03 09:20:14 -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