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

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

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

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

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

v0.7.0新版本修复问题以及重构如下:

⭐ 新功能

Feature\]CURP WAL (Write-Ahead-Log) 实现:我们设计了一个 Write-Ahead-Log 来保存 curp 的日志条目。 \[Feature\]重复数据删除:使用RIFL论文中的exactly-once语义实现命令重复数据删除。 \[Feature\]:快照恢复 #630 \[Feature\]:维护服务器接口#543 \[Feature\]:支持使用 tls 运行 #328 **️ 重构** \[Refactor\]:为自动更新lock lease添加会话结构#684 \[Refactor\]:启动流程#629 \[Refactor\]:重构speculative pool的GC #439 \[Refactor\]:新的命令执行逻辑:我们删除了cmd workers和相关的命令执行逻辑。现在,Xline 将使用串行执行(通过批处理)来防止锁争用。 \[Refactor\]:Garbage Collection:我们在dedup实现的基础上重构了garbage collection logic。 \[Refactor\]:客户端Proposal优化:我们重构了 curp 客户端,以使用 gRPC 流向集群发送提议。这降低了 gRPC 服务器的负载并提高了整体性能。 \[Refactor\]:冲突检测:我们删除了冲突检查的 mpmc。现在Xline将使用conflict pools(speculative pool和uncommitted pool)来检测命令冲突。 \[Refactor\]:Read Index:我们实现了 Raft 论文中的 Read Index 机制,用于只读命令。替换了之前的读取状态实现。 \[Refactor\]:xline-client 重构:我们为 xline-client crate 切换到更直观的用户界面。 \[Refactor\]:各种性能优化 **错误修复** \[Bug\]:实现 ReadIndex #870 \[etcdapi\] \[Bug\]:重复revision #848 \[Bug\]:测试用例 curp::it server::shutdown_rpc_should_shutdown_the_cluster 失败 #774 \[Bug\]:Xline 在使用watch功能时会丢失事件#677 \[Bug\]:xlinectl 不会续订锁定密钥的lease #664 \[Bug\]:无法将新成员node4添加到三节点xline集群#661 \[Refactor\]:revision生成期间的只读命令#502 \[Bug\]:在读取状态期间执行时读取不同的值#501 \[Bug\]:sync txn 请求未按照子请求的顺序执行 #498 \[Bug\]:读取状态#497 \[Bug\]:revision生成#491、#848 \[Bug\]:单个 txn 中的请求不按顺序执行 #471 \[Bug\]:raw_curp中的batch_index最终会溢出#368 \[Bug\]:修复 GC 可能会破坏 CURP 持久性的问题 #159 **✍️已知问题** 在基准测试期间,如果集群处于高负载下,集群有时可能会由于重复数据删除机制而无法取得进展。 **重大变化** etcd 兼容 API 现在将使用 2-RTT 操作来防止revision生成问题。 **❤️ 贡献者** 我们要感谢所有参与此版本发布的贡献者! @themanforfree @iGxnon @Phoenix500526 @bsbds ### 相关链接 · **Curp相关论文**: ++[https://www.usenix.org/system/files/nsdi19-park.pdf](https://link.zhihu.com/?target=https%3A//www.usenix.org/system/files/nsdi19-park.pdf "https://www.usenix.org/system/files/nsdi19-park.pdf")++ · **Curp相关文章**: ++[https://medium.com/@datenlord/curp-revisit-the-consensus-protocol-384464be1600](https://link.zhihu.com/?target=https%3A//medium.com/%40datenlord/curp-revisit-the-consensus-protocol-384464be1600 "https://medium.com/@datenlord/curp-revisit-the-consensus-protocol-384464be1600")++ ### 往期推荐 1. [Xline 0.7重构性能分析总述](https://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzkwNTMzOTE2MA%3D%3D%26mid%3D2247486637%26idx%3D1%26sn%3Dc3093fdf9c232813bdb2f8b3074f8b65%26chksm%3Dc0f804daf78f8dccc993e4feae4a342b7cb0060a47c5f4ef9638e67617cdd3baa72b7a61c853%26scene%3D21%23wechat_redirect "Xline 0.7重构性能分析总述") 2. [Xline中区间树实现小结](https://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzkwNTMzOTE2MA%3D%3D%26mid%3D2247486596%26idx%3D1%26sn%3Dbbbc26fae833d70e1092a29d68673054%26chksm%3Dc0f804f3f78f8de52df345fe44f45d50f76ce254281ebf249e5d03be4a0823378dbbcb6a98e3%26scene%3D21%23wechat_redirect "Xline中区间树实现小结") 3. [Xline v0.6.1: 一个用于元数据管理的分布式KV存储](https://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzkwNTMzOTE2MA%3D%3D%26mid%3D2247486308%26idx%3D1%26sn%3D895be0bc65213a3af6a0aee8d6b36436%26chksm%3Dc0f80313f78f8a05c281d6674e119db747fa65b17f1303570c2c615e13d88e08a3cfc0abb874%26scene%3D21%23wechat_redirect "Xline v0.6.1: 一个用于元数据管理的分布式KV存储") ![](https://img-blog.csdnimg.cn/img_convert/dae4829bde99e749a69a975ef0f3ef19.webp) Xline于2023年6月加入**CNCF 沙箱计划** ,是一个用于**元数据管理的分布式KV存储**。Xline项目以Rust语言写就。感谢每一位参与的社区伙伴对Xline的帮助和支持,也欢迎更多使用者和开发者参与体验和使用Xline。 **GitHub链接:** ++[https://github.com/xline-kv/Xline](https://link.zhihu.com/?target=https%3A//github.com/xline-kv/Xline "https://github.com/xline-kv/Xline")++ **Xline官网:** ++www.xline.cloud++ **Xline Discord:** ++[https://discord.gg/XyFXGpSfvb](https://link.zhihu.com/?target=https%3A//discord.gg/XyFXGpSfvb "https://discord.gg/XyFXGpSfvb")++

相关推荐
JhonKI3 分钟前
【Linux网络】深入解析I/O多路转接 - Select
linux·运维·网络
精神病不行计算机不上班10 分钟前
【计网】计算机网络的类别与性能
网络·计算机网络
我学上瘾了15 分钟前
链表反转_leedcodeP206
网络·redis·链表
识途老码1 小时前
什么是单臂路由
运维·服务器·网络·单臂路由
Linux运维老纪1 小时前
Ansible 铸就 Linux 安全之盾(Ansible Builds Linux Security Shield)
linux·服务器·网络·安全·云计算·ansible·运维开发
whoarethenext2 小时前
c网络库libevent的http常用函数的使用(附带源码)
网络·c++·http·libevent
尘世中迷途小码农2 小时前
使用O_DIRECT + 批量写数据到磁盘对丢包率的优化
网络
hellojackjiang20112 小时前
全平台开源即时通讯IM框架MobileIMSDK:7端+TCP/UDP/WebSocket协议,鸿蒙NEXT端已发布,5.7K Stars
网络·harmonyos·即时通讯·im开发
HeLLo_a1194 小时前
第11章 安全网络架构和组件(一)
linux·服务器·网络
薯条不要番茄酱4 小时前
【网络原理】从零开始深入理解HTTP的报文格式(一)
网络·网络协议·http