raft-rs
raft-rs copied to clipboard
Raft distributed consensus algorithm implemented in Rust.
# TODO - [x] joint commit single group - [x] joint commit multi group - [x] joint vote - [x] majority commit single group - [x] majority commit multi group...
Close #234 - [x] transferee receive MsgTimeoutNow before MsgAppend after Leader election timeout - [x] transferee receive MsgTimeoutNow after MsgAppend - [x] followers update log, transferee requestVote fails - [x]...
if messages are out of order and MsgTimeoutNow arrives after an election timeout, a new leader may be elected probably as MsgTimeoutNow will trigger election despite of the lease. So...
I updated some comments (and a little bit code) while reading the library (it was a fun journey.) I'm new to both rust and raft. Not sure whether this can...
I assume from the documentation that `begin_membership_change` should be called once by the leader and `finalize_membership_change` should be called once by all nodes. Please let me know if that is...
In `Raft::new`, we always create a `ProgressSet` with setting `next_idx` 1 in each `Progress`: https://github.com/tikv/raft-rs/blob/f7f7d0121132ef6406b59fc774778285cd1477d6/src/raft.rs#L251-L255 In the situation where recovering the raft node, I think maybe we can just use...
Ported to etcd: https://github.com/etcd-io/etcd/pull/11505.
**Describe the bug** When a raft-rs is initialised with a hard and config state it crashes when trying to replay already applied logs. Since raft logs are not treated as...
To release 1.0, we need to solve following issues: - [x] Add examples - [x] Enhance documentations - [ ] Review all APIs for proper access level