2个版本
新版本 0.1.3 | 2024年8月24日 |
---|---|
0.1.1 | 2024年8月24日 |
22 在 #sans-io 中排名
每月146次下载
4KB
如果将Google的Chubby作为一个自给自足的Rust库和“ trivially”有用的二进制文件来实现,这是一个我向自己提出的问题,这个项目就是一些对这个问题的尝试。
目前,一切都不工作,这个项目是富有远见的。从那里开始,希望它将变成实验性的,然后……也许,只是也许,我们可以得到一个功能齐全的Chubby克隆,可以达到“可持续”维护。
目标
- Sans-I/O实现所有“支持”的功能——即一个完全描述的状态机,该状态机对网络层/异步等没有任何规定。
- 支持小于1MB的内存中的锁文件
- 在所有对等节点之间完全复制锁文件,仅在达到写法定多数后进行写确认
- 一个完整的gRPC服务器实现
- 完整的测试覆盖率
- 为Sans-I/O核心的完整验证套件
非目标
- 将锁文件写入磁盘等。如果你想这样做,请编写一个包装器或客户端来管理它。
- 支持你选择的分布式一致性算法
- 低延迟。Hubby承诺你的延迟将会很高。领导者选举应该故意而且不急于进行 ;)
项目结构
/hubby
包表示服务器/服务。它将包含一个gRPC库,可以从任何“嵌入”服务器中暴露出来,以及一个用于通用用途的独立服务器二进制文件。/hubby-core
包表示Hubby服务的核心Sans-I/O库。
名字的由来?2) Hubby是你在分布式系统旅程中的支持伙伴。
- Chubby风格的锁定服务通常代表分布式系统的共识和配置中心——因此是hub-by。
- Hubby与原始论文的编辑距离为一。