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

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

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

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

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

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

⭐ 新功能

FeatureCURP 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++

· Curp相关文章:

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

往期推荐

  1. Xline 0.7重构性能分析总述

  2. Xline中区间树实现小结

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

Xline于2023年6月加入CNCF 沙箱计划 ,是一个用于元数据管理的分布式KV存储。Xline项目以Rust语言写就。感谢每一位参与的社区伙伴对Xline的帮助和支持,也欢迎更多使用者和开发者参与体验和使用Xline。

GitHub链接:

++https://github.com/xline-kv/Xline++

Xline官网: ++www.xline.cloud++

Xline Discord:

++https://discord.gg/XyFXGpSfvb++

相关推荐
学究天人6 小时前
数学公理体系大全:Comprehensive Collection of Mathematical Axiom Systems(卷6)
网络·算法·数学建模·动态规划·几何学·图论·拓扑学
doiito6 小时前
【Agent Harness】Gliding Horse v0.1.4.preview 发布:时间感知、闭环审计与智能增强
ai·rust·架构设计·系统设计·ai agent
tiantianuser6 小时前
NVME-oF IP 设计2 :设计之前的调研!
网络·网络协议·rdma·roce v2·nvme of
星恒讯工业路由器7 小时前
工业无线通信选型常见问题解答
网络·信息与通信·无线ap·设备选型·工业无线通信·防爆无线设备·4g/5g路由器
智慧光迅AINOPOL7 小时前
校园全光网建设成本对比:全光网取代传统校园网建设成本分析
网络·全光网解决方案·全光网·校园全光网·校园全光网解决方案
独孤留白7 小时前
从C到Rust:堆内存,数据如何逃逸栈的约束?
rust
2401_873479408 小时前
如何识别代理IP和伪装流量?用IP情报工具三步穿透住宅代理伪装
网络·数据库·网络协议·tcp/ip·ip
s09071368 小时前
深入解析 Sensor Hub Transport Protocol (SHTP) 协议
网络·协议·传感器·shtp
hey you~8 小时前
400电话选型技术测评:一个开发视角的线路质量评估方案
运维·网络·数据库·400电话·企业通信
doiito(Do It Together)8 小时前
【安全,架构】RustyVault 项目深度分析报告以及和HashiCorp Vault的差异
微服务·架构·rust