Commit Graph

46 Commits

Author SHA1 Message Date
f1853b4364 raft: add msgDenial to deny removed nodes 2014-09-03 09:19:49 -07:00
2ff3ce74c5 raft: add sm.Index 2014-09-03 09:05:14 -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
3f435571d3 raft: atomic load id 2014-09-03 09:05:14 -07:00
c3f8eabac3 etcd: separate raft and client port 2014-09-03 09:05:13 -07:00
fc35324ba7 etcd: pass v2 kv api tests 2014-09-03 09:05:13 -07:00
2af0ad505a raft: make id int64 2014-09-03 09:05:12 -07:00
7be945f59b etcd: glue 2014-09-03 09:05:12 -07:00
8eac28350d raft: avoid unexpected self-bootstrap state machine 2014-09-03 09:05:12 -07:00
e9cb510ef5 raft: node.Add needs the pubAddr field 2014-09-03 09:05:12 -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
584186c7ff add HasLeader function 2014-09-03 09:05:11 -07:00
dd94d5d4e8 raft: move tick comments into cases 2014-09-03 09:05:11 -07:00
15a8b46359 raft: add/remove -> addNode/removeNode 2014-09-03 09:05:11 -07:00
e5b9e22518 raft: Step returns ok 2014-09-03 09:05:11 -07:00
a10461f60d raft: Add/Remove -> add/remove 2014-09-03 09:05:11 -07:00
3a85d97fd9 raft: group Node fields 2014-09-03 09:05:10 -07:00
6e95448ad7 raft: correct comment for n.Next 2014-09-03 09:05:10 -07:00
7e27d588ff raft: return all the appliable entries 2014-09-03 09:05:10 -07:00
f8a3ac9338 raft: make Msgs one line 2014-09-03 09:05:10 -07:00
d12b2c39dd raft: blake is OCD 2014-09-03 09:05:10 -07:00
78bbb37018 raft: Config -> config 2014-09-03 09:05:10 -07:00
fb1ca245a7 raft: remove unused ClusterId 2014-09-03 09:05:10 -07:00
8c12d6d00f raft: refactor Node.Add/Remove 2014-09-03 09:05:10 -07:00
96059a496a raft: replace Node.id 2014-09-03 09:05:10 -07:00
abd2448931 raft: addr -> id 2014-09-03 09:05:10 -07:00
c24b6b4150 raft: init stateMachine in New 2014-09-03 09:05:10 -07:00
7cdd148e24 raft: StartCluster -> Dictate 2014-09-03 09:05:09 -07:00
1a75beb57c raft: add confAdd and confRemove entry type 2014-09-03 09:05:09 -07:00
b5f887f5d2 raft: add cluster test 2014-09-03 09:05:09 -07:00
5cad4e595c raft: add create cluster of itself 2014-09-03 09:05:09 -07:00
193756fa38 raft: add remove node 2014-09-03 09:05:09 -07:00
961518c893 raft: execute log entries in node.step 2014-09-03 09:05:09 -07:00
989f41477d raft: rename peer -> peers 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
4d22ff90d5 raft: refactor network simulator
Signed-off-by: Blake Mizerany <blake.mizerany@gmail.com>
2014-09-03 09:05:08 -07:00
09d1575eeb raft: node.tick 2014-09-03 09:05:08 -07:00
c223eca938 raft: clean stateMachine 2014-09-03 09:05:06 -07:00
5b052e1e10 raft: prop msg type should be MsgProp 2014-09-03 09:05:06 -07:00
6e0a668455 raft: add Node.Next 2014-09-03 09:05:05 -07:00
9545662c6b raft: return *Node 2014-09-03 09:05:05 -07:00
50e0db4038 raft: attempt first version of Interface 2014-09-03 09:05:05 -07:00