Skip to content

akiradeveloper/sorock

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

Related Projects

  • 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: [email protected]