3 个版本
新 0.1.3 | 2024 年 8 月 24 日 |
---|---|
0.1.1 | 2024 年 8 月 24 日 |
0.1.0 | 2024 年 8 月 24 日 |
286 每月下载量
4KB
如果将 Google 的 Chubby 实现为一个自给自足的 Rust 库,并且“极其”有用二进制文件会怎样?这是我问自己的问题,这个项目是对这个问题的尝试性回答。
目前,这个项目还没有实现任何功能,它只是一个愿景。希望将来它能够成为实验性的,然后……也许,真的,我们能够得到一个功能完整的 Chubby 克隆,并且可以持续维护。
目标
- 实现 Sans-I/O 所有“支持”的功能 —— 即一个完全描述的状态机,它不涉及网络层 / 异步等。
- 支持小于 1MB 的内存中的锁文件
- 在节点之间完全复制锁文件,只有在达到写法定多数后才确认写入
- 使用 gRPC 的完整服务器实现
- 完整的测试覆盖率
- 为 sans-I/O 内核提供完整的验证套件
非目标
- 将锁文件写入磁盘等。如果您需要这个功能,请编写包装器或客户端来管理它。
- 支持您选择的分布式一致性算法
- 低延迟。Hubby 承诺您的延迟会很高。领导者选举应该是有意为之,而不应该仓促行事 ;).
项目结构
/hubby
包代表服务器/服务。它将包含一个 gRPC 库,可以从任何“嵌入”服务器中公开,以及一个用于通用用途的独立服务器二进制文件。/hubby-core
包代表 Hubby 服务的核心 sans-I/O 库。
名字的由来?2) Hubby 是您分布式系统之旅中的支持伙伴。
- Chubby 风格的锁定服务通常代表分布式系统的共识和配置中心 —— 因此 hub-by。
- Hubby 与原始论文的编辑距离为一。