01、Xline是什么
Xline 是一款开源的分布式 KV 存储引擎,其核心目的是实现高性能的跨数据中心强一致性,提供跨数据中心的meatdata 管理。那么 Xline 是怎么实现这种高性能的跨数据中心强一致性的呢?这篇文章就将带领大家一起来一探究竟。
02、Xline 的整体架构
我们先来看看 Xline 的整体架构,如下图所示:

从上至下,Xline 可以大致分为三层,分别是
- 接入层:采用 gRPC 框架实现,负责接收来自客户端的请求。
- 中间层:可以分为 CURP 共识模块(左)和业务 Server 模块(右),其中:
◦CURP 共识模块:实现了 CURP 共识算法,代码上则对应了 Xline 中的 curp 这个 crate,相应的 rpc 服务定义在 curp/proto 中。
◦业务 Server 模块:负责实现 Xline 的上层业务逻辑,如负责 KV 相关请求的 Kv Server 以及负责认证请求的 AuthServer 等。代码上则对应了 xline 这个 crate,相应的 rpc 服务定义文件保存在 xlineapi 这个 crate 中。
- 存储层:负责持久化相关的工作,向上层提供抽象接口,代码上对应了 engine 这个 crate
03、CURP 协议简介
CURP 是什么?
Xline 中所使用的共识协议,即非 Paxos 而非 Raft,而是一种新的名为 Curp 的共识协议,其全称为 “Consistent Unordered Replication Protocol”。CURP 协议来自于 NSDI 2019 的一篇 Paper 《Exploiting Commutativity For Practical Fast Replication》,其作者是来自斯坦福的博士生Seo Jin Park和John Ousterhout教授,John Ousterhout教授同时也是raft算法的作者。
为什么选择 CURP 协议
那为什么 Xline 要使用 CURP 这样一种新的协议,而非 Raft 或者 Multi-Paxos 来作为底层的共识协议呢?为了说明这个问题,我们不妨先来看看 Raft 以及 Multi-Paxos 都存在什么样的问题?
下图是 Raft 协议达成共识的一个时序流程:

Xline是一款基于CURP协议的分布式KV存储系统,旨在提供跨数据中心的高性能强一致性。CURP是一种无序复制算法,通过fastpath(1个RTT)和slowpath(2个RTT)实现不同场景下的共识,优化了高延迟环境下的性能。相较于Raft和Multi-Paxos,CURP在无冲突情况下能更快达成共识。
最低0.47元/天 解锁文章
1656

被折叠的 条评论
为什么被折叠?



