Skip to content

A Raft implementation in Rust language. The name is not a joke.

License

Notifications You must be signed in to change notification settings

AdamLeyshon/lol

 
 

Repository files navigation

lol

This project in under complete reworking. Please wait for a while.

CI MIT licensed Tokei

A Raft implementation in Rust language. To support this project please give it a ⭐

Features

multi-raft

  • Implements all fundamental 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 divided into two spaces. One in the lower side is called "Pure Raft" layer which is totally unaware of gRPC and Multi-Raft. Therefore, called pure. The other side translates gRPC requests into pure requests and vice versa.

lol2 (1)

Development

  • docker compose build to build test servers.
  • TERM1: ./log to start log watcher.
  • TERM2: ./dev to start the dev container.
  • TERM2: cargo test.

Author

Akira Hayakawa
EMail: [email protected]

About

A Raft implementation in Rust language. The name is not a joke.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 99.6%
  • Dockerfile 0.4%