lolraft

Crates.iololraft
lib.rslolraft
version0.10.2
created_at2024-03-10 23:57:27.140832+00
updated_at2024-03-13 00:05:32.381603+00
descriptionA Multi-Raft implementation in Rust language.
homepage
repositoryhttps://github.com/akiradeveloper/lolraft
max_upload_size
id1169049
size162,862
Akira Hayakawa (akiradeveloper)

documentation

README

lolraft

Crates.io Documentation CI MIT licensed

A Multi-Raft implementation in Rust language.

146726060-63b12378-ecb7-49f9-8025-a65dbd37e9b2

Features

スクリーンショット 2024-03-11 7 54 06

  • 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.

スクリーンショット 2024-03-11 8 00 03

Development

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

Author

Akira Hayakawa
EMail: ruby.wktk@gmail.com

Commit count: 736

cargo fmt