Xline v0.4.1: 一个用于元数据管理的分布式KV存储

Xline是什么?我们为什么要做Xline?

Xline是一个基于Curp协议的,用于管理元数据的分布式KV存储。现有的分布式KV存储大多采用Raft共识协议,需要两次RTT才能完成一次请求。当部署在单个数据中心时,节点之间的延迟较低,因此不会对性能产生大的影响。

但是,当跨数据中心部署时,节点之间的延迟可能是几十或几百毫秒,此时 Raft 协议将成为性能瓶颈。Curp 协议就是为了解决这个问题而设计的。它可以在命令不冲突的情况下减少一个RTT,从而提高性能。因此,Xline旨在实现高性能的数据访问和跨数据中心场景下的强一致性。

V0.4.1版本有什么新功能?

v0.4.1新版本功能、修复问题以及重构如下:

功能

  • 增加观察进度通知机制(issue#309),在pr#278 中解决。

修复错误

  • 修复一个BUG #285,即在集成测试中,cmd_worker会出现panic,在pr #286中解决。
  • 修复一个BUG #291,即集成测试案例 "test_kv_authorization "在某些情况下会阻塞,在pr #292中解决。
  • 修复一个bug #252,即通过发送SIGINT信号终止xline客户端后,xline客户端的工作会出现异常,在pr #255中解决。
  • 修复bug #284和#303,即集成测试用例 "test_lock_timeout "会出现panic,并且锁的验证测试会阻塞,在pr #312中解决。

重构

  • 重构`XlineServer`,将一些巨大的结构和方法分解成小的结构和方法,提高可读性(issue#293),在pr #294中解决。
  • 重构curp快速读取实现(issue#270),在pr #297中解决。
  • 改进 "RocksSnapshot "的读写逻辑(issue#263),在pr#264中解决。
  • 重构watch服务器的实现(issue#253),在pr#262、#268、#278中解决。
  • 重构kv服务器的实现(issue#250),在pr #260中解决。
  • 重构lease服务器的实现(issue#251),在pr #276中解决。
  • 使用更好的方法来生成stream(issue#248),在pr #249中解决。

欢迎参与到Xline项目中

我们欢迎任何对于Xline的积极贡献。目前在GitHub上有些任务并不需要深入了解Curp协议或Xline这个项目,只需要了解API和Rust语言即可。即使您现处于入门阶段,并想要在开源项目中使用Rust语言,社区也会提供指导和帮助,来引导您更好地参与项目。

目前Xline提供如下4个 good first issue:

  1. Improve the readability of boot up errors in Xline #330
  2. [Bug]: Wrong version from help #327
  3. [Refactor]: Merge entries and batch_index #256
  4. Use a unique propose id #219

Xline的建设需要每一位对此感兴趣且愿意付出的你们的参与,我们期待你们的加入。

相关链接

· GitHub: https://github.com/datenlord/Xline

· Curp相关论文:

https://www.usenix.org/system/files/nsdi19-park.pdf

· Curp相关文章: 

https://medium.com/@datenlord/curp-revisit-the-consensus-protocol-384464be1600

· Xline官网:www.xline.cloud

往期推荐

1. Xline 持久化存储设计与实现

2. Xline v0.4.0: 一个用于元数据管理的分布式KV存储

3. 从云计算到天空计算(一)

4. 从云计算到天空计算(二)

Xline是一个用于元数据管理的分布式KV存储。Xline项目以Rust语言写就,欢迎大家参与我们的开源项目!

GitHub链接:https://github.com/datenlord/Xline

Xline官网:www.xline.cloud

Xline Discord: 

https://discord.gg/XyFXGpSfvb

猜你喜欢

转载自blog.csdn.net/DatenLord/article/details/131366924