9997c9488a
*: fix a few small issues identified by go vet
2014-09-08 23:52:36 -07:00
8dfa490e49
raft: fix ignore term
2014-09-04 14:33:51 -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
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
ad307c6965
raft: go fmt
2014-09-03 09:20:14 -07:00
4aa15294a8
raft: re-remove clusterId from raft
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
a5df254e53
raft: add clusterId to snapshot
2014-09-03 09:20:08 -07:00
01c40fcf50
raft: not recover from outdated snapshot
2014-09-03 09:20:02 -07:00
ba63cf666d
raft: add recover
2014-09-03 09:20:02 -07:00
6030261363
etcd/raft: add snap
2014-09-03 09:20:02 -07:00
54b4f52e48
raft: add index to entry
2014-09-03 09:20:01 -07:00
311db876b0
raft: add unstableState
2014-09-03 09:19:58 -07:00
1288e1f39d
raft: log->raftlog
2014-09-03 09:19:58 -07:00
2665cc1cc8
raft: heartbeat should not contain entries
2014-09-03 09:19:57 -07:00
79689872af
raft: use From field to distinguish local message
2014-09-03 09:19:56 -07:00
3921295b21
raft: update lead to none when receives vaild msgVote
2014-09-03 09:19:50 -07:00
447d7dc51b
raft: fix log append; add tests
2014-09-03 09:19:49 -07:00
0886e0ddf4
raft: change term to atomicInt
2014-09-03 09:05:14 -07:00
30f4d9faea
raft: change index and term to int64
2014-09-03 09:05:14 -07:00
e11c7f35b4
raft: add atomicInt
2014-09-03 09:05:14 -07:00
2af0ad505a
raft: make id int64
2014-09-03 09:05:12 -07:00
5651272ec8
raft: handle snapshot message
2014-09-03 09:05:12 -07:00
2a11c1487c
raft: sm.compact and sm.restore
2014-09-03 09:05:12 -07:00
62a90e77b3
raft: send Normal with nil Data when leader is elected out
2014-09-03 09:05:12 -07:00
c86f484712
raft: make judge clear
2014-09-03 09:05:12 -07:00
7dc02b947d
raft: refine TestVote
2014-09-03 09:05:12 -07:00
095251f1fa
raft: Network supports discontinuous ids
2014-09-03 09:05:12 -07:00
5778c49689
raft: set term in reset
2014-09-03 09:05:11 -07:00
3817661f82
raft: rename ConfigAdd/ConfigRemove -> AddNode/RemoveNode
2014-09-03 09:05:11 -07:00
9f315ffe10
raft: make entry type public
2014-09-03 09:05:11 -07:00
e5b9e22518
raft: Step returns ok
2014-09-03 09:05:11 -07:00
cc3a8e26c8
raft: add leader change test for configuration
2014-09-03 09:05:10 -07:00
abd2448931
raft: addr -> id
2014-09-03 09:05:10 -07:00
1a75beb57c
raft: add confAdd and confRemove entry type
2014-09-03 09:05:09 -07:00
c03fbf68d6
raft: add conf safety
...
To make configuration change safe without adding configuration protocol:
1. We only allow to add/remove one node at a time.
2. We only allow one uncommitted configuration entry in the log.
These two rules can make sure there is no disjoint quorums in both current cluster and the
future(after applied any number of committed entries or uncommitted entries in log) clusters.
We add a type field in Entry structure for two reasons:
1. Statemachine needs to know if there is a pending configuration change.
2. Configuration entry should be executed by raft package rather application who is using raft.
2014-09-03 09:05:09 -07:00
853a458a0d
raft: change ins from array to map
2014-09-03 09:05:09 -07:00
5d710c0f7a
raft: add recvMsgBeat test
2014-09-03 09:05:08 -07:00
12572e5412
raft: add state transition test
2014-09-03 09:05:08 -07:00
920b80c41f
raft: add single node commit test
2014-09-03 09:05:08 -07:00
8111d4fbb8
raft: introduce network.cut
2014-09-03 09:05:08 -07:00
a6a63d116f
raft: add a test for commit rule
2014-09-03 09:05:08 -07:00
4d22ff90d5
raft: refactor network simulator
...
Signed-off-by: Blake Mizerany <blake.mizerany@gmail.com >
2014-09-03 09:05:08 -07:00
c32d34166e
raft: leader updates its own match; tries to commit after a prop
2014-09-03 09:05:08 -07:00
167ef7e8b0
raft: test leader replies to appResp
2014-09-03 09:05:08 -07:00