Xiang Li
d7d6f84f64
raft: rand election timeout
2014-10-07 20:12:49 +08:00
Xiang Li
45e4a8643a
raft: add tests for raft.compact
2014-10-07 16:03:11 +08:00
Xiang Li
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
Xiang Li
dc9cb4b4ba
raft: fix send
...
send should not attach current term to msgProp. Send should simply do proxy for msgProp without
changing its term. msgProp has a special term 0, which indicates that it is a local message.
2014-10-06 04:48:35 +08:00
Xiang Li
70bf464cd6
raft: add comment to decrTo
2014-10-03 13:42:34 +08:00
Xiang Li
16ba77767e
raft: do not decrease nextIndex and send entries for stale reply
2014-10-03 13:41:27 +08:00
Yicheng Qin
8490904f20
Merge pull request #1224 from unihorn/149
...
raft: msg.Denied -> msg.Reject
2014-10-02 12:24:09 -07:00
Yicheng Qin
fff918c672
raft: msg.Denied -> msg.Reject
...
Change the field name because it has msgDenied already.
2014-10-02 12:22:12 -07:00
Yicheng Qin
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
Xiang Li
d7b4e44a66
raft: heartbeat is only response for maintaining leader dominance
2014-09-29 16:57:43 -07:00
Xiang Li
51529cc3f2
raft: remove index field in msg AppResp
2014-09-28 21:13:53 -07:00
Xiang Li
adefd83855
raft: remove index field in msg voteResp
2014-09-28 21:13:43 -07:00
Xiang Li
86473d8a27
raft: add msg denied field
2014-09-28 21:13:33 -07:00
Yicheng Qin
1ca03d8e9d
raft: move logic to separate func
2014-09-24 10:23:44 -07:00
Yicheng Qin
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
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
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
Xiang Li
ab61a8aa9a
*: init for on disk snap support
2014-09-17 13:56:12 -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
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
Xiang Li
e7ea6a374a
main: check node id is not noneid
2014-09-14 23:28:11 -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
da575c46fa
raft: remove unused field
2014-09-14 13:08:35 -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
Yicheng Qin
b50f96e2e1
raft: set none to be 0
2014-09-09 16:47:21 -07:00
Xiang Li
1a6e908971
*: add wal
2014-09-05 09:52:40 -07:00
Xiang Li
8dfa490e49
raft: fix ignore term
2014-09-04 14:33:51 -07:00
Xiang Li
8f4c615704
raft: leader should tick heartbeat
2014-09-03 22:01:31 -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
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
d218034630
boom
2014-09-03 09:20:20 -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
f87a6f3c1f
raft: sift proposals from other message types in Step
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
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
Yicheng Qin
a28dc4559b
raft/etcd: recover node
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