c67fd14fe8
Merge pull request #1257 from bdarnell/cleanups
...
Raft: assorted cleanups (golint and go vet)
2014-10-09 05:55:21 +08:00
d2e858587f
Raft: a few more improvements to test messages.
2014-10-08 15:07:11 -04:00
1cd3345e00
raft: address issues with election timeout
2014-10-08 07:41:17 +08:00
36558b1924
Raft: fix printf strings found by go vet.
2014-10-07 18:44:06 -04:00
3ad0df3722
Raft: fix problems reported by golint.
2014-10-07 18:44:06 -04:00
f65d117462
raft: add a test for randElectionTimeout
2014-10-07 20:34:15 +08:00
d7d6f84f64
raft: rand election timeout
2014-10-07 20:12:49 +08:00
45e4a8643a
raft: add tests for raft.compact
2014-10-07 16:03:11 +08:00
5587e0d73f
raft: compact takes index and nodes parameters
...
Before this commit, compact always compact log at current appliedindex of raft.
This prevents us from doing non-blocking snapshot since we have to make snapshot
and compact atomically. To prepare for non-blocking snapshot, this commit make
compact supports index and nodes parameters. After completing snapshot, the applier
should call compact with the snapshot index and the nodes at snapshot index to do
a compaction at snapsohot index.
2014-10-07 16:03:11 +08:00
01ecc60a88
Merge pull request #1203 from coreos/fix_raft
...
raft: commitIndex=min(leaderCommit, index of last new entry)
2014-10-03 22:24:07 +08:00
172bd7d096
raft: add test for maybeappend change
2014-10-03 22:21:35 +08:00
16ba77767e
raft: do not decrease nextIndex and send entries for stale reply
2014-10-03 13:41:27 +08:00
8490904f20
Merge pull request #1224 from unihorn/149
...
raft: msg.Denied -> msg.Reject
2014-10-02 12:24:09 -07:00
fff918c672
raft: msg.Denied -> msg.Reject
...
Change the field name because it has msgDenied already.
2014-10-02 12:22:12 -07:00
182c8316e1
raft: refine comment for doc and removed list tests
2014-10-01 14:57:39 -07:00
e4a6c9651a
raft: add removed
...
The usage of removed:
1. tell removed node about its removal explicitly using msgDenied
2. prevent removed node disrupt cluster progress by launching leader election
It is set when apply node removal, or receive msgDenied.
2014-10-01 14:57:38 -07:00
d7b4e44a66
raft: heartbeat is only response for maintaining leader dominance
2014-09-29 16:57:43 -07:00
e26ff32fd8
raft: fix error msg
2014-09-28 21:17:51 -07:00
51529cc3f2
raft: remove index field in msg AppResp
2014-09-28 21:13:53 -07:00
adefd83855
raft: remove index field in msg voteResp
2014-09-28 21:13:43 -07:00
86473d8a27
raft: add msg denied field
2014-09-28 21:13:33 -07:00
1ca03d8e9d
raft: move logic to separate func
2014-09-24 10:23:44 -07:00
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
bc7b0108dc
raft: ConfigChange -> ConfChange
2014-09-23 12:02:44 -07:00
d92931853e
raft: Config -> ConfigChange
...
Configure -> ProposeConfigChange
AddNode, RemoveNode -> ApplyConfigChange
2014-09-22 23:39:53 -07:00
b82d70871f
raft: use EntryType in protobuf
2014-09-22 15:44:46 -07:00
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
023dc7cba2
etcdserver: add SYNC request
2014-09-16 13:42:03 -07:00
f9c12e2053
Merge pull request #1075 from coreos/fix_heartbeat
...
raft: fix heartbeat
2014-09-15 10:04:12 -07:00
21d116d3e1
raft: fix heartbeat
2014-09-15 09:58:22 -07:00
e7ea6a374a
main: check node id is not noneid
2014-09-14 23:28:11 -07:00
2927cc6e3b
raft: refine plus assignment
2014-09-14 22:07:32 -07:00
30289dad5c
raft: more descriptive panic info
2014-09-12 11:39:53 -07:00
dc1357afa9
raft: use raft helper function in testing
2014-09-11 19:26:29 -07:00
0e0fc2bd24
raft: use [1,n] as address list for raft state machines
2014-09-11 19:23:05 -07:00
84c2bd0b7d
raft: set From of local message to be local id
2014-09-11 19:18:47 -07:00
4e31bb308d
raft: use const firstId to track ids
2014-09-09 19:07:20 -07:00
b50f96e2e1
raft: set none to be 0
2014-09-09 16:47:21 -07:00
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