184 Commits

Author SHA1 Message Date
Xiang Li
d7b4e44a66 raft: heartbeat is only response for maintaining leader dominance 2014-09-29 16:57:43 -07:00
Xiang Li
e26ff32fd8 raft: fix error msg 2014-09-28 21:17:51 -07:00
Xiang Li
51529cc3f2 raft: remove index field in msg AppResp 2014-09-28 21:13:53 -07:00
Xiang Li
adefd83855 raft: remove index field in msg voteResp 2014-09-28 21:13:43 -07:00
Xiang Li
86473d8a27 raft: add msg denied field 2014-09-28 21:13:33 -07:00
Yicheng Qin
1ca03d8e9d raft: move logic to separate func 2014-09-24 10:23:44 -07:00
Yicheng Qin
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
Yicheng Qin
bc7b0108dc raft: ConfigChange -> ConfChange 2014-09-23 12:02:44 -07:00
Yicheng Qin
d92931853e raft: Config -> ConfigChange
Configure -> ProposeConfigChange
AddNode, RemoveNode -> ApplyConfigChange
2014-09-22 23:39:53 -07:00
Yicheng Qin
b82d70871f raft: use EntryType in protobuf 2014-09-22 15:44:46 -07:00
Yicheng Qin
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
Yicheng Qin
023dc7cba2 etcdserver: add SYNC request 2014-09-16 13:42:03 -07:00
Xiang Li
f9c12e2053 Merge pull request #1075 from coreos/fix_heartbeat
raft: fix heartbeat
2014-09-15 10:04:12 -07:00
Xiang Li
21d116d3e1 raft: fix heartbeat 2014-09-15 09:58:22 -07:00
Xiang Li
e7ea6a374a main: check node id is not noneid 2014-09-14 23:28:11 -07:00
Yicheng Qin
2927cc6e3b raft: refine plus assignment 2014-09-14 22:07:32 -07:00
Yicheng Qin
30289dad5c raft: more descriptive panic info 2014-09-12 11:39:53 -07:00
Yicheng Qin
dc1357afa9 raft: use raft helper function in testing 2014-09-11 19:26:29 -07:00
Yicheng Qin
0e0fc2bd24 raft: use [1,n] as address list for raft state machines 2014-09-11 19:23:05 -07:00
Yicheng Qin
84c2bd0b7d raft: set From of local message to be local id 2014-09-11 19:18:47 -07:00
Yicheng Qin
4e31bb308d raft: use const firstId to track ids 2014-09-09 19:07:20 -07:00
Yicheng Qin
b50f96e2e1 raft: set none to be 0 2014-09-09 16:47:21 -07:00
Jonathan Boulle
9997c9488a *: fix a few small issues identified by go vet 2014-09-08 23:52:36 -07:00
Xiang Li
8dfa490e49 raft: fix ignore term 2014-09-04 14:33:51 -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
Xiang Li
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
Blake Mizerany
d218034630 boom 2014-09-03 09:20:20 -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
ad307c6965 raft: go fmt 2014-09-03 09:20:14 -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
Xiang Li
a5df254e53 raft: add clusterId to snapshot 2014-09-03 09:20:08 -07:00
Yicheng Qin
01c40fcf50 raft: not recover from outdated snapshot 2014-09-03 09:20:02 -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
54b4f52e48 raft: add index to entry 2014-09-03 09:20:01 -07:00
Xiang Li
311db876b0 raft: add unstableState 2014-09-03 09:19:58 -07:00
Xiang Li
1288e1f39d raft: log->raftlog 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
Yicheng Qin
79689872af raft: use From field to distinguish local message 2014-09-03 09:19:56 -07:00
Xiang Li
3921295b21 raft: update lead to none when receives vaild msgVote 2014-09-03 09:19:50 -07:00
Xiang Li
447d7dc51b raft: fix log append; add tests 2014-09-03 09:19:49 -07:00
Xiang Li
0886e0ddf4 raft: change term to atomicInt 2014-09-03 09:05:14 -07:00
Xiang Li
30f4d9faea raft: change index and term to int64 2014-09-03 09:05:14 -07:00
Xiang Li
e11c7f35b4 raft: add atomicInt 2014-09-03 09:05:14 -07:00
Xiang Li
2af0ad505a raft: make id int64 2014-09-03 09:05:12 -07:00
Xiang Li
5651272ec8 raft: handle snapshot message 2014-09-03 09:05:12 -07:00