- Update prost to 0.11 (#496)
- Make priority an i64 so a lower than default priority can be configured (#495)
- Allow fetching entries in asynchronous manner (#459)
- Support setting max-inflight-msgs in runtime to reduce memory usage (#450)
- Joint Consensus became a stable feature (#379, #380, #382, #383, #385, #386, #411)
- Ported aggresive flow control from etcd/raft (#354)
- Introduced group commit to force geo replication safety (#359)
- Harden read index (#355, #363)
- Support limiting uncommitted logs (#398)
- Support asynchronous ready (#403, #410, #417, #433)
- Fast log append rejection (#367)
- bytes::Bytes is used for protos if feature protobuf-codec is enabled (by default) (#438)
- Switched to thiserror (#435)
- Implemented committed entries pagination (#440)
- Protos now is a separate crate (tikv/raft-rs#247)
- raft-rs is rust-2018 compatible (tikv/raft-rs#184)
- Optional support for batch MsgAppend (tikv/raft-rs#179)
- Harden follower read (tikv/raft-rs#220)
- Migrate to slog (tikv/raft-rs#185)
- Several code refactor and API clean up
- Optional support for prost
- Introduced an experimental Joint Consensus based arbitrary membership change feature. (tikv/raft-rs#101)
- Harmonized
protobuf
dependency to match important downstreams. (tikv/raft-rs#181) - Unified the
Progress
collections insideProgressSet
. (tikv/raft-rs#108) Raft::new()
now returns aResult
. (tikv/raft-rs#122)- Removed the
Progress.is_learner
field. Check via function inProgressSet
instead. (tikv/raft-rs#119) - Added Appvevor. Added then removed bors. (tikv/raft-rs#137, tikv/raft-rs#134)
- Introduced getters and setters for various
Ready
fields. (tikv/raft-rs#120) - Reduced memory allocation on reset. (tikv/raft-rs#130)
- Added issue templates, more links. (tikv/raft-rs#133, tikv/raft-rs#126)
- Moved poll and quorum checking functionality into
ProgressSet
. (tikv/raft-rs#121) - The leader is now trivially in the replicate state. (tikv/raft-rs#146)
- Fixed a problem with lease based read-only requests interacting with
check_quorum
wrong. (tikv/raft-rs#141) - Corrected the
single_mem_node
example. (tikv/raft-rs#162) - Fixed typos. (tikv/raft-rs#159)
- Adopted Hashbrown over
FxHash
. (tikv/raft-rs#160) - Corrected learner checking in
handle_transfer_leader
. (tikv/raft-rs#165) - Resolved some lints (tikv/raft-rs#174, tikv/raft-rs#168, tikv/raft-rs#142, tikv/raft-rs#124)
- Fixed uses of
#[feature(_)]
so that we can build on stable cleanly. (tikv/raft-rs#180)
- No longer scan the raft log when becoming a leader. (tikv/raft-rs#100)
- Added the ability to skip broadcast commit at runtime. (tikv/raft-rs#115)
- Documented all public API. (tikv/raft-rs#87)
- Refined a few points in the API in preparation for more work. (tikv/raft-rs#102)
- Configuration logic was moved into its own module. (tikv/raft-rs#91)
- Added
fail-rs
based tests. (tikv/raft-rs#114) - Added benchmarking using
criterion
. (tikv/raft-rs#110) - Expanded tested examples. (tikv/raft-rs#118)
- Improved documentation. (tikv/raft-rs#106)
- Refined the CI scripts to ensure strict linting. (tikv/raft-rs#117)
- Tests now output logs. Configure it with
RUST_LOG=raft=info
. (tikv/raft-rs#103) - Eased the
log
dependency. (tikv/raft-rs#116) - Formatting updates. (tikv/raft-rs#104)
- Updated some dependencies. (tikv/raft-rs#97)
- Use the clippy preview from Rustup. (tikv/raft-rs#95)
- Adopted a Code of Conduct. (tikv/raft-rs#107)
- Bugfix: Reset leader_id when becoming precandidate to resolve
prevote
andcheck_quorum
compatability (tikv/raft-rs#84) - Bugfix: Becoming a precandidate should reset votes (tikv/raft-rs#83)
- Fixed some typos, improve variable naming, and other small documentation fixes (tikv/raft-rs#77, tikv/raft-rs#79, tikv/raft-rs#78, tikv/raft-rs#80)
- Implemented
Default
forConfig
and fleshed out an example (tikv/raft-rs#81) - Improved our changelog format (tikv/raft-rs#85)
- Removed custom Rustfmt configuration (tikv/raft-rs#86)
- Supported configuring the election timeout range (tikv/raft-rs#63).
- Kept compatible with rust-protobuf 2.0 (tikv/raft-rs#64, tikv/raft-rs#75)
- Made Raft now
Send
(tikv/raft-rs#67) - Added documentation examples (tikv/raft-rs#69)
- Fixed a deadlock in the prevote migration process (tikv/raft-rs#42)
- Deprecated sync-log and add context (tikv/raft-rs#59)
- Fixed learner isolation bug (tikv/raft-rs#58)
- Ported several tests (tikv/raft-rs#54, tikv/raft-rs#41)
- Added examples (tikv/raft-rs#44)
- Added fxhash (tikv/raft-rs#48)
- initial release