#分布式 #分布式共识 #分布式锁 #共识 # #树结构

垃圾

垃圾 — 类似于 Chubby,但用 Rust 实现 .. 垃圾。

1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2017年1月29日

#10#分布式锁

MPL-2.0 许可证

31KB
640

垃圾 — 类似于 Chubby,但用 Rust 实现 .. 垃圾。

垃圾是一个提供强一致性保证的锁服务和低容量存储服务,旨在为松耦合分布式系统提供基础。

这也是在 Rust 中编写一个完整应用程序的机会。

系统的组件如下

  • cas -- 一个分布式、内容可寻址的内存存储系统。该系统使用“八卦”风格的协议确保所有参与者都有所有内容,并支持代际垃圾回收和持久化到磁盘。

  • fs -- 一个类似于 Git 的版本化文件系统,基于 cas。这包括具有父提交和与每个提交关联的嵌套树结构的“提交”概念。

  • prax -- 一个分布式共识服务,旨在对树形提交树的当前头部进行投票,并定义当前的“主”节点。

  • tip -- 在树形和 prax 之上的一层,支持远程客户端操作,如读取、写入、检查和交换以及建议锁。提供的客户端接口是 HTTP。

整个应用程序当然是一个持续的工作。

待办事项

单主机

在不联网状态下完成此应用程序

  • 实现 prax API
  • 实现 tip HTTP API
  • 在 cas 和 fs 之间实现代际垃圾回收

分发

  • 构建网络接口
  • 教会 cas 进行八卦
  • 教会 prax 达成共识

杂项

  • Travis
  • 强制使用 rustfmt
  • 运行覆盖率

依赖关系

~5MB
~73K SLoC