3 releases
0.10.2 | Mar 13, 2024 |
---|---|
0.10.1 | Mar 11, 2024 |
0.10.0 | Mar 10, 2024 |
#1982 in Algorithms
121 downloads per month
155KB
3.5K
SLoC
lolraft
A Multi-Raft implementation in Rust language.
Features
- Implements all core Raft features for production use.
- Supports Multi-Raft. Mutliple Raft processes can coexist in a single OS process so they can share resources efficiently.
- Based on Tonic and efficient gRPC streaming is exploited in log replication and snapshot.
- Phi Accrual Failure Detector is used for leader failure detection. The adaptive algorithm allows you to not choose a fixed timeout number in prior to deployment and makes it possible to deploy Raft node in even geo-distributed environment.
Architecture
To implement Multi-Raft, the architecture is split into two spaces. One in the lower side is called "Pure Raft" layer which is totally unaware of gRPC and Multi-Raft. Therefore, it is called pure. The other side translates gRPC requests into pure requests and vice versa.
Development
docker compose build
to build test application.- TERM1:
./log
to start log watcher. - TERM2:
./dev
to start the dev container. - TERM2:
cargo test
.
Author
Akira Hayakawa
EMail: ruby.wktk@gmail.com
Dependencies
~10–20MB
~262K SLoC