https://github.com/akiradeveloper/sorock
A Multi-Raft implementation in Rust language.
https://github.com/akiradeveloper/sorock
consensus-algorithm distributed-log raft rust
Last synced: 6 months ago
JSON representation
A Multi-Raft implementation in Rust language.
- Host: GitHub
- URL: https://github.com/akiradeveloper/sorock
- Owner: akiradeveloper
- License: mit
- Created: 2020-09-12T21:58:13.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-10-30T03:54:54.000Z (11 months ago)
- Last Synced: 2024-10-30T04:59:36.385Z (11 months ago)
- Topics: consensus-algorithm, distributed-log, raft, rust
- Language: Rust
- Homepage:
- Size: 4.17 MB
- Stars: 180
- Watchers: 5
- Forks: 18
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Sorock
[](https://crates.io/crates/sorock)
[](https://docs.rs/sorock)

[](https://codecov.io/gh/akiradeveloper/sorock)
[](https://github.com/akiradeveloper/sorock/blob/master/LICENSE)A Multi-Raft implementation in Rust language.
[Documentation (mdbook)](https://akiradeveloper.github.io/sorock/)
## Features

- Supports Multi-Raft. Mutliple Raft processes can coexist in a single OS process so they can share resources efficiently.
- Tested with 1000 shards per node.
- Heartbeats in shards are batched to reduce the network overhead.
- Based on [Tonic](https://github.com/hyperium/tonic) and efficient gRPC streaming is exploited in log replication and snapshot.
- Efficient default backend implementation using [redb](https://github.com/cberner/redb).
- Writes in shards are batched in one transaction.
- Phi Accrual Failure Detector is used for leader failure detection.
- The adaptive algorithm allows you to not choose a fixed timeout number before deployment and to deploy Raft node in even geo-distributed environment where the latency between nodes isn't identical.## Related Projects
- [sorock-monitor](https://github.com/akiradeveloper/sorock-monitor): Monitoring tool to watch the log state in a cluster. Implementing using [ratatui](https://github.com/ratatui/ratatui).
- [phi-detector](https://github.com/akiradeveloper/phi-detector): Implementation of Phi Accrual Failure Detector in Rust.## Author
Name: Akira Hayakawa
Email: ruby.wktk@gmail.com