7dba92dd53
raft: update unstable when calling stableTo with 0
...
It should update unstable in this case because it may happen that raft
only writes entry 0 into stable storage.
2014-11-11 17:20:31 -08:00
3fc6f9c24f
Merge pull request #1586 from xiangli-cmu/fix_node
...
*: add Advance interface to raft.Node
2014-11-05 15:09:51 -08:00
0d7c43d885
*: add a Advance interface to raft.Node
...
Node set the applied to committed right after it sends out Ready to application. This is not
correct since the application has not actually applied the entries at that point. We add a
Advance interface to Node. Application needs to call Advance to tell raft Node its progress.
Also this change can avoid unnecessary copying when application is still applying entires but
there are more entries to be applied.
2014-11-05 15:04:14 -08:00
dbdeceda7b
raft: do not load empty state and ents
2014-11-03 15:16:41 -08:00
46ebf69c02
raft: better logging for leader transition
2014-10-30 09:33:38 -07:00
6796669484
raft: stop logging IDs with 0x prefix
2014-10-27 18:56:13 -07:00
a44849deec
Merge pull request #1286 from coreos/clusterid
...
*: generate clusterid
2014-10-20 19:07:03 -07:00
e200d2a8e2
etcdserver/raft: remove msgDenied, removedNodes, shouldStop
...
The future plan is to do all these in etcdserver level.
2014-10-20 15:13:18 -07:00
ea6bcacfe4
*: generate clusterid
2014-10-20 15:00:54 -07:00
7a4d42166b
*: add license header to all source files
2014-10-17 15:41:22 -07:00
8cd6030a1d
etcdserver: add checking when apply conf change
2014-10-16 09:49:26 -07:00
eb2dd1892f
raft: add RemovedNodes to SoftState
2014-10-15 10:53:07 -07:00
4183b69e12
*: move from third_party to Godep
2014-10-14 00:37:52 -07:00
d7dfe07e5d
Merge pull request #1293 from unihorn/160
...
raft: protobuf messageType
2014-10-14 09:16:38 +08:00
f693c6ddf2
etcdserver: apply bootstrap conf change
2014-10-13 11:22:23 -07:00
0319b033ea
etcdserver/raft: set context for bootstrap addnode entries
2014-10-13 11:22:23 -07:00
32c38820c1
raft: protobuf messageType
2014-10-13 11:13:43 -07:00
af5b8c6c44
raft: int64 -> uint64
2014-10-09 14:26:43 +08:00
3ad0df3722
Raft: fix problems reported by golint.
2014-10-07 18:44:06 -04:00
45e4a8643a
raft: add tests for raft.compact
2014-10-07 16:03:11 +08:00
7fe4385ef9
raft: add comment for Compact interface of Node
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
45ebfb4217
raft: refine initial entries logic in StartNode
2014-10-06 16:06:01 -07:00
314d425718
main/raft: write addNode ConfChange entries in log when start raft
2014-10-06 14:33:12 -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
03152004d7
Merge pull request #1145 from coreos/fix_panic
...
raft: node ignores unexpected local messages receiving from network
2014-09-23 14:11:56 -07:00
25c2768b8f
raft: node ignores unexpected local messages receiving from network
2014-09-23 13:50:43 -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
ec8f493fde
raft: refine comments for Configure
2014-09-22 15:44:47 -07:00
dc36ae7058
raft: use pb.Config instead of []byte for Configure
2014-09-22 15:44:47 -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
b66a40495d
raft: introduce Node interface
2014-09-17 14:18:56 -07:00
ab61a8aa9a
*: init for on disk snap support
2014-09-17 13:56:12 -07:00
de21c39ca5
raft: isStateEqual -> isHardStateEqual, IsEmptyState -> IsEmptyHardState
2014-09-16 13:55:00 -07:00
023dc7cba2
etcdserver: add SYNC request
2014-09-16 13:42:03 -07:00
cc8d8f2102
raft: remove unused raftpb.LastIndex
2014-09-15 14:34:23 -07:00
9607665323
raft: remove unused return
2014-09-15 13:22:21 -07:00
9bf2c2ed9d
Merge pull request #1052 from unihorn/121
...
server: add unit tests
2014-09-15 13:20:50 -07:00
6cd4434ff3
server: add unit tests
...
Make test coverage >= 90%
2014-09-15 13:16:48 -07:00
ff7f340bba
Merge pull request #1063 from coreos/node_run_test
...
raft: test node block proposal
2014-09-14 22:46:50 -07:00
e085cc4e06
Merge pull request #1042 from unihorn/118
...
raft: set none to be 0
2014-09-14 22:32:37 -07:00
34db45a948
raft: set propc, readyc to be nil before run loop
2014-09-12 12:57:50 -07:00
0c09862494
raft: add isStateEqual test
2014-09-12 11:59:32 -07:00
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
676b5be972
raft: use IsEmptyState
2014-09-09 11:58:15 -07:00
ac0443bc89
raft: remove extra code
2014-09-09 10:16:39 -07:00
df259e5878
raft: add a newReady helper function
2014-09-09 10:16:39 -07:00
90c0db3d42
wal: do not save empty state
2014-09-09 10:15:29 -07:00