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
ec8f493fde
raft: refine comments for Configure
2014-09-22 15:44:47 -07:00
Yicheng Qin
dc36ae7058
raft: use pb.Config instead of []byte for Configure
2014-09-22 15:44:47 -07:00
Yicheng Qin
b82d70871f
raft: use EntryType in protobuf
2014-09-22 15:44:46 -07:00
Yicheng Qin
b801f1affe
raft: refine comment for raft.pendingConf
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
f2ebd64a1b
*: add testutil pkg
2014-09-19 14:32:38 -07:00
Jonathan Boulle
b66a40495d
raft: introduce Node interface
2014-09-17 14:18:56 -07:00
Xiang Li
ab61a8aa9a
*: init for on disk snap support
2014-09-17 13:56:12 -07:00
Yicheng Qin
de21c39ca5
raft: isStateEqual -> isHardStateEqual, IsEmptyState -> IsEmptyHardState
2014-09-16 13:55:00 -07:00
Yicheng Qin
023dc7cba2
etcdserver: add SYNC request
2014-09-16 13:42:03 -07:00
Yicheng Qin
cc8d8f2102
raft: remove unused raftpb.LastIndex
2014-09-15 14:34:23 -07:00
Yicheng Qin
9607665323
raft: remove unused return
2014-09-15 13:22:21 -07:00
Yicheng Qin
9bf2c2ed9d
Merge pull request #1052 from unihorn/121
...
server: add unit tests
2014-09-15 13:20:50 -07:00
Yicheng Qin
6cd4434ff3
server: add unit tests
...
Make test coverage >= 90%
2014-09-15 13:16:48 -07:00
Xiang Li
f9c12e2053
Merge pull request #1075 from coreos/fix_heartbeat
...
raft: fix heartbeat
2014-09-15 10:04:12 -07:00
Yicheng Qin
38c074cb05
Merge pull request #1067 from unihorn/122
...
raft: write entry 0 into log
2014-09-15 10:00:49 -07:00
Xiang Li
21d116d3e1
raft: fix heartbeat
2014-09-15 09:58:22 -07:00
Yicheng Qin
140fd6d6c4
raft: restart using last written entry also
2014-09-15 09:56:33 -07:00
Yicheng Qin
a9af70c52b
raft: write entry 0 into log
2014-09-15 09:55:52 -07:00
Xiang Li
29f9372370
Merge pull request #1080 from coreos/check_id
...
main: check node id is not noneid
2014-09-14 23:28:39 -07:00
Xiang Li
e7ea6a374a
main: check node id is not noneid
2014-09-14 23:28:11 -07:00
Xiang Li
ff7f340bba
Merge pull request #1063 from coreos/node_run_test
...
raft: test node block proposal
2014-09-14 22:46:50 -07:00
Xiang Li
e085cc4e06
Merge pull request #1042 from unihorn/118
...
raft: set none to be 0
2014-09-14 22:32:37 -07:00
Yicheng Qin
2927cc6e3b
raft: refine plus assignment
2014-09-14 22:07:32 -07:00
Yicheng Qin
da575c46fa
raft: remove unused field
2014-09-14 13:08:35 -07:00
Yicheng Qin
34db45a948
raft: set propc, readyc to be nil before run loop
2014-09-12 12:57:50 -07:00
Xiang Li
ccee264b7d
raft: move defer after run
2014-09-12 12:28:15 -07:00
Xiang Li
45f56a5377
raft: forceGoSched -> forceGosched
2014-09-12 12:27:18 -07:00
Brandon Philips
df253a2b14
Merge pull request #1066 from philips/add-raft-doc
...
add-raft-doc
2014-09-12 12:21:53 -07:00
Xiang Li
5c884c7797
raft: better comment and naming
2014-09-12 12:18:30 -07:00
Xiang Li
0c09862494
raft: add isStateEqual test
2014-09-12 11:59:32 -07:00
Xiang Li
f9ef453894
raft: test contain updates
2014-09-12 11:51:25 -07:00
Xiang Li
b261a5edc1
raft: test node block proposal
2014-09-12 11:51:25 -07:00
Yicheng Qin
30289dad5c
raft: more descriptive panic info
2014-09-12 11:39:53 -07:00
Yicheng Qin
072a21782e
Merge pull request #1049 from unihorn/120
...
raftLog: enhance check in compact
2014-09-12 11:35:41 -07:00
Yicheng Qin
d31443f5a3
raftLog: compact applied entries only
...
compact MUST happen on entries that have been applied, or
1. it may screw up the log by setting wrong commitIndex
2. discard unapplied entries
2014-09-12 11:34:08 -07:00
Brandon Philips
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
Brandon Philips
58b8610024
raft: add a doc.go file
...
Explain the package from a high level.
2014-09-12 09:57:48 -07:00
Yicheng Qin
073411f23f
raft: remove vote with default value
2014-09-11 23:17:13 -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
Xiang Li
281afa74ee
raft: comments for TestNodeStep
2014-09-11 19:00:40 -07:00
Xiang Li
eb1dcb324c
raft: test node step
2014-09-11 17:10:36 -07:00
Brandon Philips
3bc4b2db12
raft: log comment grammar fix
2014-09-11 13:59:50 -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
Xiang Li
eaffaacf5e
raft: do not need to copy committed entries
2014-09-09 14:09:30 -07:00
Xiang Li
676b5be972
raft: use IsEmptyState
2014-09-09 11:58:15 -07:00
Xiang Li
ac0443bc89
raft: remove extra code
2014-09-09 10:16:39 -07:00
Xiang Li
df259e5878
raft: add a newReady helper function
2014-09-09 10:16:39 -07:00
Xiang Li
90c0db3d42
wal: do not save empty state
2014-09-09 10:15:29 -07:00
Xiang Li
c28fef5fc4
raft: set ready.st to empty state, if current state is equal to previous state
2014-09-09 10:15:29 -07:00
Xiang Li
b0d865e845
raft: record previous state is enough
2014-09-09 10:15:29 -07:00
Xiang Li
0060c0749a
raft: prev should be set only when we sucessfully send out rd to the channel
2014-09-09 10:15:29 -07:00
Jonathan Boulle
9997c9488a
*: fix a few small issues identified by go vet
2014-09-08 23:52:36 -07:00
Jonathan Boulle
946e35c958
raft: remove unused alwaysreadyc
2014-09-08 22:21:03 -07:00
Xiang Li
9215ebb6aa
Merge pull request #992 from coreos/wal
...
wal
2014-09-08 16:24:28 -07:00
Xiang Li
f3348d6e13
raft: fix the comment in test
2014-09-08 16:16:58 -07:00
Xiang Li
19235c8104
raft: refactor restart test
2014-09-08 16:10:13 -07:00
Brandon Philips
145882244f
raft: add doc for the Ready struct
2014-09-08 15:59:15 -07:00
Xiang Li
1a6e908971
*: add wal
2014-09-05 09:52:40 -07:00
Xiang Li
5ddfe18cda
Merge pull request #989 from coreos/fix_ignore_term
...
raft: fix ignore term
2014-09-04 14:36:56 -07:00
Xiang Li
8dfa490e49
raft: fix ignore term
2014-09-04 14:33:51 -07:00
Xiang Li
e30505d33b
raft: fix node test
2014-09-04 11:42:11 -07:00
Xiang Li
d7a289ee41
raft: init prev: vote for none
2014-09-04 11:09:55 -07:00
Xiang Li
8f4c615704
raft: leader should tick heartbeat
2014-09-03 22:01:31 -07:00
Blake Mizerany
d844377ca6
*: vendor context
2014-09-03 20:06:16 -07:00
Blake Mizerany
814558306e
raft: coerce import gogoproto from third_party
2014-09-03 15:51:09 -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
bdb954b2f5
wal: fix wal
2014-09-03 15:10:15 -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
Xiang Li
966cfd6e8e
raft: fix elapsed reset
2014-09-03 09:20:20 -07:00
Blake Mizerany
f2d200a826
raft: log only new/no leader
2014-09-03 09:20:20 -07:00
Blake Mizerany
db8e4a2fc0
raft: remove debug logging
2014-09-03 09:20:20 -07:00
Blake Mizerany
d218034630
boom
2014-09-03 09:20:20 -07:00
Blake Mizerany
b796d227f1
add some logging
2014-09-03 09:20:19 -07:00
Blake Mizerany
6d720fb33f
raft: replace Context with Stop
2014-09-03 09:20:18 -07:00
Blake Mizerany
f8be54b416
...deadlocked...
2014-09-03 09:20:17 -07:00
Blake Mizerany
7469871d20
raft: remove proposal id / add test
2014-09-03 09:20:17 -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
1eb2512961
raft: only allow one message to Step
2014-09-03 09:20:16 -07:00
Blake Mizerany
225e618b8f
raft: add Id to Entry
2014-09-03 09:20:15 -07:00
Blake Mizerany
021e231476
raft: ReadState -> Ready, which returns a chan
2014-09-03 09:20:15 -07:00
Blake Mizerany
edac2e909b
etcdserver: wip
2014-09-03 09:20:14 -07:00
Blake Mizerany
91b62c0fbf
raft: messages -> byMsgType
2014-09-03 09:20:14 -07:00
Blake Mizerany
ad307c6965
raft: go fmt
2014-09-03 09:20:14 -07:00
Blake Mizerany
7486d3d4c5
raft: mention error in doc
2014-09-03 09:20:14 -07:00
Blake Mizerany
481e229ad4
raft: unblock progress by deproitizing proposals in Step
2014-09-03 09:20:14 -07:00
Blake Mizerany
f87a6f3c1f
raft: sift proposals from other message types in Step
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
15bb84d320
raft: move in entry.proto
2014-09-03 09:20:14 -07:00
Blake Mizerany
0453d09af6
raft: moved into new raft
2014-09-03 09:20:11 -07:00
Blake Mizerany
f03c3bce05
raft: seperate dequeuing from slicing
2014-09-03 09:20:11 -07:00
Yicheng Qin
27c9a0535c
server: add tests for on-disk snapshot
2014-09-03 09:20:10 -07:00
Xiang Li
5fdc124578
etcd: clean up snap
2014-09-03 09:20:10 -07:00
Yicheng Qin
a28dc4559b
raft/etcd: recover node
2014-09-03 09:20:10 -07:00
Xiang Li
63489b9ef5
etcd: snap and wal init
2014-09-03 09:20:10 -07:00
Xiang Li
a5df254e53
raft: add clusterId to snapshot
2014-09-03 09:20:08 -07:00
Yicheng Qin
9203f68894
server: add /v2/stats/self
2014-09-03 09:20:07 -07:00
Blake Mizerany
c19932c9ba
raft: prune unnecessary logging - fixes #15
2014-09-03 09:20:04 -07:00
Xiang Li
8e06333d45
raft: make State a protobuf type
2014-09-03 09:20:03 -07:00
Xiang Li
d6c3ebb1a0
raft: make Info a protobuf type
2014-09-03 09:20:03 -07:00
Yicheng Qin
431ff3cce1
raft: minor change on code
2014-09-03 09:20:02 -07:00
Yicheng Qin
15029381e1
raft: fix promotable
2014-09-03 09:20:02 -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
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
Xiang Li
f387e3e27d
raft: add Entry.isConfig
2014-09-03 09:05:11 -07:00
Xiang Li
3817661f82
raft: rename ConfigAdd/ConfigRemove -> AddNode/RemoveNode
2014-09-03 09:05:11 -07:00
Xiang Li
9f315ffe10
raft: make entry type public
2014-09-03 09:05:11 -07:00
Xiang Li
584186c7ff
add HasLeader function
2014-09-03 09:05:11 -07:00
Blake Mizerany
dd94d5d4e8
raft: move tick comments into cases
2014-09-03 09:05:11 -07:00
Blake Mizerany
15a8b46359
raft: add/remove -> addNode/removeNode
2014-09-03 09:05:11 -07:00
Blake Mizerany
e5b9e22518
raft: Step returns ok
2014-09-03 09:05:11 -07:00
Blake Mizerany
a10461f60d
raft: Add/Remove -> add/remove
2014-09-03 09:05:11 -07:00
Blake Mizerany
8344303b1a
raft: addr -> id
2014-09-03 09:05:11 -07:00
Blake Mizerany
cb2095cddc
raft: fix typo
2014-09-03 09:05:10 -07:00
Xiang Li
cc3a8e26c8
raft: add leader change test for configuration
2014-09-03 09:05:10 -07:00
Blake Mizerany
3a85d97fd9
raft: group Node fields
2014-09-03 09:05:10 -07:00
Xiang Li
6e95448ad7
raft: correct comment for n.Next
2014-09-03 09:05:10 -07:00
Xiang Li
7e27d588ff
raft: return all the appliable entries
2014-09-03 09:05:10 -07:00
Blake Mizerany
f8a3ac9338
raft: make Msgs one line
2014-09-03 09:05:10 -07:00
Blake Mizerany
d12b2c39dd
raft: blake is OCD
2014-09-03 09:05:10 -07:00
Blake Mizerany
78bbb37018
raft: Config -> config
2014-09-03 09:05:10 -07:00
Blake Mizerany
fb1ca245a7
raft: remove unused ClusterId
2014-09-03 09:05:10 -07:00
Blake Mizerany
8c12d6d00f
raft: refactor Node.Add/Remove
2014-09-03 09:05:10 -07:00
Blake Mizerany
96059a496a
raft: replace Node.id
2014-09-03 09:05:10 -07:00
Blake Mizerany
abd2448931
raft: addr -> id
2014-09-03 09:05:10 -07:00
Blake Mizerany
c24b6b4150
raft: init stateMachine in New
2014-09-03 09:05:10 -07:00
Blake Mizerany
7cdd148e24
raft: StartCluster -> Dictate
2014-09-03 09:05:09 -07:00
Xiang Li
1a75beb57c
raft: add confAdd and confRemove entry type
2014-09-03 09:05:09 -07:00
Yicheng Qin
b5f887f5d2
raft: add cluster test
2014-09-03 09:05:09 -07:00
Yicheng Qin
5cad4e595c
raft: add create cluster of itself
2014-09-03 09:05:09 -07:00
Yicheng Qin
193756fa38
raft: add remove node
2014-09-03 09:05:09 -07:00
Xiang Li
961518c893
raft: execute log entries in node.step
2014-09-03 09:05:09 -07:00
Xiang Li
989f41477d
raft: rename peer -> peers
2014-09-03 09:05:09 -07:00
Xiang Li
8ce6b94e05
raft: add and remove
2014-09-03 09:05:09 -07:00
Xiang Li
d293c4915c
raft: fix pendingConf
2014-09-03 09:05:09 -07:00
Xiang Li
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
Xiang Li
853a458a0d
raft: change ins from array to map
2014-09-03 09:05:09 -07:00
Yicheng Qin
f9c299da8b
raft: return after handling msgBeat
...
It makes the workflow more clear.
2014-09-03 09:05:09 -07:00
Xiang Li
c7e358922b
raft: add elaspe reset test
2014-09-03 09:05:09 -07:00
Xiang Li
5d710c0f7a
raft: add recvMsgBeat test
2014-09-03 09:05:08 -07:00
Xiang Li
12572e5412
raft: add state transition test
2014-09-03 09:05:08 -07:00
Xiang Li
920b80c41f
raft: add single node commit test
2014-09-03 09:05:08 -07:00
Xiang Li
8111d4fbb8
raft: introduce network.cut
2014-09-03 09:05:08 -07:00
Xiang Li
a6a63d116f
raft: add a test for commit rule
2014-09-03 09:05:08 -07:00
Xiang Li
28f87c2a43
raft: use sm.maybeCommit; should not call log.maybeCommit directly
2014-09-03 09:05:08 -07:00
Yicheng Qin
4d22ff90d5
raft: refactor network simulator
...
Signed-off-by: Blake Mizerany <blake.mizerany@gmail.com>
2014-09-03 09:05:08 -07:00
Yicheng Qin
a9c81088f8
raft: add new diff
...
Signed-off-by: Blake Mizerany <blake.mizerany@gmail.com>
2014-09-03 09:05:08 -07:00
Xiang Li
c32d34166e
raft: leader updates its own match; tries to commit after a prop
2014-09-03 09:05:08 -07:00
Xiang Li
6fa74b0e33
raft: do bcast when receiving msgBeat
2014-09-03 09:05:08 -07:00
Xiang Li
09d1575eeb
raft: node.tick
2014-09-03 09:05:08 -07:00
Xiang Li
eff3aadba1
raft: add full stop to every function comment
2014-09-03 09:05:08 -07:00
Xiang Li
167ef7e8b0
raft: test leader replies to appResp
2014-09-03 09:05:08 -07:00
Xiang Li
9bb7265d64
raft: leader only sends append to the unsynced peer when get a bad appResp
2014-09-03 09:05:07 -07:00
Xiang Li
88674a623a
raft: use if statement to handle voteResp
2014-09-03 09:05:07 -07:00
Xiang Li
b3de2b3450
raft: testVote - breaks state machine init to multiple lines
2014-09-03 09:05:07 -07:00
Xiang Li
59a720d8be
raft: vote test for candidate and leader
2014-09-03 09:05:07 -07:00
Xiang Li
828a8cf326
raft: leader denies vote with the same term
2014-09-03 09:05:07 -07:00
Xiang Li
93b08502e4
raft: check voteFor
2014-09-03 09:05:07 -07:00
Yicheng Qin
c1c45575be
raft: ins: []*index -> []index
...
It could make raft faster, use less storage.
2014-09-03 09:05:07 -07:00
Xiang Li
1170c21f89
raft: add a single candidate test
2014-09-03 09:05:07 -07:00
Xiang Li
2066ff5acb
raft: candidate should become leader directly if it is a one node cluster
2014-09-03 09:05:07 -07:00
Xiang Li
0cdd1b58a4
raft: rename log.commit to log.committed
2014-09-03 09:05:07 -07:00
Xiang Li
9cd3b2153f
raft: comment log.nextEnts
2014-09-03 09:05:07 -07:00
Xiang Li
a06729a96a
raft: use log.lastIndex()
2014-09-03 09:05:07 -07:00
Xiang Li
888ddacd3c
raft: remove the init cap of log entries
2014-09-03 09:05:06 -07:00
Xiang Li
2ef9498d6f
raft: remove TLA comment
2014-09-03 09:05:06 -07:00
Xiang Li
1f0e13e956
raft: remove sm.voteWorthy
2014-09-03 09:05:06 -07:00
Xiang Li
bee9d8bea5
raft: add log.maybeAppend
2014-09-03 09:05:06 -07:00
Xiang Li
b70be19653
raft: add log.maybeCommit
2014-09-03 09:05:06 -07:00
Xiang Li
092461d7c8
raft: rename log.len to log.lastIndex
2014-09-03 09:05:06 -07:00
Xiang Li
8f3d109c18
raft: rename log.isOk to log.matchTerm
2014-09-03 09:05:06 -07:00
Xiang Li
4c609ec59c
raft: new log struct
2014-09-03 09:05:06 -07:00
Xiang Li
cb7b75c15f
raft: remove unused function maybeAppend
...
Signed-off-by: Blake Mizerany <blake.mizerany@gmail.com>
2014-09-03 09:05:06 -07:00
Xiang Li
74737b76cc
raft: leader commit and test
...
Signed-off-by: Blake Mizerany <blake.mizerany@gmail.com>
2014-09-03 09:05:06 -07:00
Xiang Li
c223eca938
raft: clean stateMachine
2014-09-03 09:05:06 -07:00
Xiang Li
5b052e1e10
raft: prop msg type should be MsgProp
2014-09-03 09:05:06 -07:00
Xiang Li
ab79550693
raft: use becomeFollower in cadidate state
2014-09-03 09:05:06 -07:00
Xiang Li
73e3394d2d
raft: reverse sort to figure out the ci
2014-09-03 09:05:05 -07:00
Blake Mizerany
8ddcd9799d
raft: go fmt
2014-09-03 09:05:05 -07:00
Blake Mizerany
6e0a668455
raft: add Node.Next
2014-09-03 09:05:05 -07:00
Blake Mizerany
9545662c6b
raft: return *Node
2014-09-03 09:05:05 -07:00
Blake Mizerany
50e0db4038
raft: attempt first version of Interface
2014-09-03 09:05:05 -07:00
Blake Mizerany
8d7be33dd8
raft: move to raft pkg
2014-09-03 09:05:05 -07:00