3个版本

0.10.2 2024年3月13日
0.10.1 2024年3月11日
0.10.0 2024年3月10日

#1275 in 算法

MIT许可协议

155KB
3.5K SLoC

lolraft

Crates.io Documentation CI MIT licensed

Rust语言中的多Raft实现。

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

特性

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

  • 实现了生产使用所需的Raft所有核心功能。
  • 支持多Raft。多个Raft进程可以在单个OS进程中共存,以便它们可以有效地共享资源。
  • 基于Tonic,在日志复制和快照中利用高效的gRPC流。
  • 使用Phi累积故障检测器进行领导者故障检测。自适应算法允许您在部署之前不选择一个固定的超时数字,使得在地理分布式环境中部署Raft节点成为可能。

架构

为了实现多Raft,架构分为两个空间。下面的一层被称为“纯Raft”层,它完全不知道gRPC和多Raft。因此,它被称为纯。另一侧将gRPC请求转换为纯请求,反之亦然。

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

开发

  • docker compose build构建测试应用程序。
  • TERM1: ./log启动日志监视器。
  • TERM2: ./dev启动开发容器。
  • TERM2: cargo test

作者

Akira Hayakawa
电子邮件: [email protected]

依赖关系

~10–20MB
~259K SLoC