简介和背景
随着分布式业务从单数据中心向多数据中心发展,多地多活部署的需求也越来越普遍。这带来最大的挑战就是跨数据中心跨地域的metadata管理,metadata对数据的稳定性和强一致性有极高要求。在单数据中心场景下,metadata的管理已经有很多成熟的解决方案,etcd就是其中的佼佼者,但是在多数据中心场景下,etcd的性能受Raft共识协议的限制,它的性能和稳定性都大打折扣。DatenLord作为高性能跨云跨数据中心的存储,对metadata管理有了跨云跨数据中心的要求。DatenLord目前使用etcd作为metadata的管理引擎,但是考虑到etcd无法完全满足DatenLord的跨云跨数据中心的场景,我们决定实现自己的metadata管理引擎。Xline应运而生,Xline是一个分布式的KV存储,用来管理少量的关键性数据,并在跨云跨数据中心的场景下仍然保证高性能和数据强一致性。考虑到兼容性问题,Xline会兼容etcd接口,让用户使用和迁移更加流畅。
Xline的架构

Xline的架构主要分为RPC server,KV server,其他server,CURP共识协议模块和Storage模块
- RPC server:主要负责接受用户的请求并转发到相应的模块进行处理,并回复用户请求。
- KV Server和其他server:主要业务逻辑模块,如处理KV相关请求的KV server,处理watch请求的watch server等。
- CURP共识协议模块: 采用CURP共识协议,负责对用户的请求进行仲裁,保证数据强一致性。
- Storage:存储模块,存储了key value的相关信息。
一次写请求的操作流程如下:
- RPC server接收到用户写请求,确定是KV操作,将请求转发到KV server。
- KV server做基本请求做验证,然后将请求封装为一个proposal提交给CURP模块。
- CURP模块执行CURP共识协议,当达成共识后,CURP模块会调用Storage模块

Xline是一款高性能跨云跨数据中心的分布式KV存储系统,旨在解决多数据中心部署下metadata管理难题。通过CURP共识协议,Xline能够在减少RTT的同时保持数据强一致性。针对CURP协议与etcd revision特性的兼容问题,Xline引入了两阶段提交机制,确保高性能及一致性。

最低0.47元/天 解锁文章
458

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



