3 releases
| 0.10.2 | Mar 13, 2024 |
|---|---|
| 0.10.1 | Mar 11, 2024 |
| 0.10.0 | Mar 10, 2024 |
#8 in #multi-raft
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 buildto build test application.- TERM1:
./logto start log watcher. - TERM2:
./devto start the dev container. - TERM2:
cargo test.
Author
Akira Hayakawa
EMail: ruby.wktk@gmail.com
Dependencies
~15–20MB
~291K SLoC