3 个版本

0.1.3 2024 年 8 月 24 日
0.1.1 2024 年 8 月 24 日
0.1.0 2024 年 8 月 24 日

#9#distributed-consensus

Download history 286/week @ 2024-08-19

286 每月下载量

Apache-2.0 协议

4KB

如果将 Google 的 Chubby 实现为一个自给自足的 Rust 库,并且“极其”有用二进制文件会怎样?这是我问自己的问题,这个项目是对这个问题的尝试性回答。

目前,这个项目还没有实现任何功能,它只是一个愿景。希望将来它能够成为实验性的,然后……也许,真的,我们能够得到一个功能完整的 Chubby 克隆,并且可以持续维护。

目标

  • 实现 Sans-I/O 所有“支持”的功能 —— 即一个完全描述的状态机,它不涉及网络层 / 异步等。
  • 支持小于 1MB 的内存中的锁文件
  • 在节点之间完全复制锁文件,只有在达到写法定多数后才确认写入
  • 使用 gRPC 的完整服务器实现
  • 完整的测试覆盖率
  • 为 sans-I/O 内核提供完整的验证套件

非目标

  • 将锁文件写入磁盘等。如果您需要这个功能,请编写包装器或客户端来管理它。
  • 支持您选择的分布式一致性算法
  • 低延迟。Hubby 承诺您的延迟会很高。领导者选举应该是有意为之,而不应该仓促行事 ;).

项目结构

  • /hubby 包代表服务器/服务。它将包含一个 gRPC 库,可以从任何“嵌入”服务器中公开,以及一个用于通用用途的独立服务器二进制文件。
  • /hubby-core 包代表 Hubby 服务的核心 sans-I/O 库。

名字的由来?2) Hubby 是您分布式系统之旅中的支持伙伴。

  1. Chubby 风格的锁定服务通常代表分布式系统的共识和配置中心 —— 因此 hub-by。
  2. Hubby 与原始论文的编辑距离为一。

无运行时依赖