2 unstable releases

0.11.0 Oct 19, 2024
0.0.0 Oct 1, 2024

#406 in Algorithms

Download history 163/week @ 2024-09-28 17/week @ 2024-10-05 2/week @ 2024-10-12 160/week @ 2024-10-19 5/week @ 2024-10-26

165 downloads per month

MIT license

130KB
3.5K SLoC

Sorock

Crates.io API doc CI codecov MIT licensed

A Multi-Raft implementation in Rust language.

Documentation (mdbook)

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 and efficient gRPC streaming is exploited in log replication and snapshot.
  • Efficient default backend implementation using 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.
  • sorock-monitor: Monitoring tool to watch the log state in a cluster. Implementing using ratatui.
  • phi-detector: Implementation of Phi Accrual Failure Detector in Rust.

Author

Name: Akira Hayakawa
Email: ruby.wktk@gmail.com

Dependencies

~11–21MB
~288K SLoC