879 Commits

Author SHA1 Message Date
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
38ec659cd6 raft: make Entry a protobuf type 2014-09-03 09:20:01 -07:00
Xiang Li
611d564865 raft: remove unused prevTerm field 2014-09-03 09:20:01 -07:00
Xiang Li
54b4f52e48 raft: add index to entry 2014-09-03 09:20:01 -07:00
Yicheng Qin
88e5bce63d wip: wal glue 2014-09-03 09:19:59 -07:00
Xiang Li
b383cd5acf raft: refactor recover 2014-09-03 09:19:59 -07:00
Yicheng Qin
2bd74bc328 raft: add Load 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
311db876b0 raft: add unstableState 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
13ec81c87f raft: fix panic in putVarint; varint can take up to 10 bytes for a 64bit integer. 2014-09-03 09:19:56 -07:00
Xiang Li
060de128a7 raft: add clusterId 2014-09-03 09:19:56 -07:00
Yicheng Qin
9793c518ab raft: forbid to use none as id 2014-09-03 09:19:56 -07:00
Yicheng Qin
79689872af raft: use From field to distinguish local message 2014-09-03 09:19:56 -07:00
Xiang Li
bea28933d3 raft: init lead to none 2014-09-03 09:19:52 -07:00
Xiang Li
2e86cf2dc8 raft: add more randomness 2014-09-03 09:19:50 -07:00
Xiang Li
9c8aff66a1 raft: randomize election timeout 2014-09-03 09:19:50 -07:00
Xiang Li
3921295b21 raft: update lead to none when receives vaild msgVote 2014-09-03 09:19:50 -07:00
Yicheng Qin
5fc5681cb4 server: make removal go through run loop
It should not send to raft endpoint directly.
2014-09-03 09:19:50 -07:00
Yicheng Qin
f1853b4364 raft: add msgDenial to deny removed nodes 2014-09-03 09:19:49 -07:00
Yicheng Qin
690edb2c56 raft: update lead for follower sm when receiving msgApp
Or follower may take `none` as its leader forever if it just launched
a failed election whose term is the same as the current leader.
2014-09-03 09:19:49 -07:00
Xiang Li
447d7dc51b raft: fix log append; add tests 2014-09-03 09:19:49 -07:00
Xiang Li
2ff3ce74c5 raft: add sm.Index 2014-09-03 09:05:14 -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
3f435571d3 raft: atomic load id 2014-09-03 09:05:14 -07:00
Xiang Li
c3f8eabac3 etcd: separate raft and client port 2014-09-03 09:05:13 -07:00
Xiang Li
fc35324ba7 etcd: pass v2 kv api tests 2014-09-03 09:05:13 -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
Xiang Li
2a11c1487c raft: sm.compact and sm.restore 2014-09-03 09:05:12 -07:00
Yicheng Qin
62a90e77b3 raft: send Normal with nil Data when leader is elected out 2014-09-03 09:05:12 -07:00
Xiang Li
064004b899 raft: add log compact 2014-09-03 09:05:12 -07:00
Xiang Li
6a232dfc13 raft: add offset for log 2014-09-03 09:05:12 -07:00
Xiang Li
7be945f59b etcd: glue 2014-09-03 09:05:12 -07:00
Yicheng Qin
8eac28350d raft: avoid unexpected self-bootstrap state machine 2014-09-03 09:05:12 -07:00
Yicheng Qin
c86f484712 raft: make judge clear 2014-09-03 09:05:12 -07:00
Yicheng Qin
7dc02b947d raft: refine TestVote 2014-09-03 09:05:12 -07:00
Yicheng Qin
095251f1fa raft: Network supports discontinuous ids 2014-09-03 09:05:12 -07:00
Xiang Li
62bdcf6f49 raft: range over sm.ins 2014-09-03 09:05:12 -07:00
Xiang Li
e9cb510ef5 raft: node.Add needs the pubAddr field 2014-09-03 09:05:12 -07:00
Blake Mizerany
5778c49689 raft: set term in reset 2014-09-03 09:05:11 -07:00
Blake Mizerany
67808f8db1 raft: remove vestigial canStep 2014-09-03 09:05:11 -07:00
Blake Mizerany
6044b1a0d7 raft: break Step into pieces 2014-09-03 09:05:11 -07:00