X-Paxos完全基于多线程. 它可以在单个分区Paxos中完全使用多线程功能. 所有任务均由通用操作系统运行,消除了CPU瓶颈. 依靠服务层的多线程异步框架和异步网络层,除了必需的协议串行点之外,大多数操作可以并发执行,并且某些协议串行点采用无锁设计,可以有效地使用多个线程功能实现了Paxos的单分区多线程功能. 单分区性能远远超过竞争产品,甚至超过竞争产品的多分区分区性能.
基于提议者的唯一分布式系统的瓶颈之一是主节点是唯一的内容输出源. 当集群中有大量节点时,主节点的大量网络发送和接收工作将导致主节点过载. 造成CPU和带宽瓶颈;在国家/全球部署中,所有节点与主节点之间的直接通信将导致区域之间的长途/国际链路的带宽过大.
X-Paxos是一个独立的Paxos库,旨在解决全球分布的强一致性问题. 在设计之初就考虑了这个问题. 在稳态操作期间,X-Paxos将感知每个节点之间的网络延迟(物理距离)并形成级联的拓扑结构,从而有效地减少了主节点上的负载并减少了长途链路的带宽使用;此时,将自动重新组织拓扑,以确保其余节点之间的对等方正常进行. 同时,X-Paxos支持为重组拓扑设置规则的服务. 企业可以根据自己的APP部署架构和延迟特征设置拓扑重组规则.

X-Paxos与大多数现有的paxos库之间的最大区别是X-Paxos支持可插入的日志记录模块. 日志模块是Paxos中的重要模块. 它的持久性与数据的一致性有关. 它的读写性能将在很大程度上影响协议的整体读写性能. 目前,大多数独立的Paxos库都具有内置的日志记录模块,并且不支持插件. 这带来了两个缺点:
例如,phxpaxos的内置日志模块使用LevelDB. 作为日志系统,它的操作具有很多冗余,没有优化,并且性能令人担忧. 同时,使用phxpaxos的phxsql单节点需要同时保存binlog和Paxos log Medium),这会严重影响性能并浪费存储空间. 使用X-Paxos的AliSQL X-Cluster直接转换现有的binlog模块. 连接到X-Paxos日志模块时,单个节点只有一个日志,从而减少了存储并提高了性能.
对于分布式强共识协议,正确性是生命线. 如上所述,分布式的强共识协议很难用完整的理论来证明其正确性. 再加上工程实施中的问题,难度更大. 我们从理论和工程上采用了大量的理论和技术手段,以确保X-Paxos的正确性和完整性.
TLA +随机异常系统
我们已经建立了一个自动随机异常验证系统,可以在各种异常情况下自动验证协议的正确性和稳定性. 在模拟网络数据包丢失,闪存,隔离和磁盘故障的条件下,验证X-Paxos具有正确的功能和一致的数据.
异常回归系统
XCOM(MySQL组复制)
MySQL Group Replication是MySQL官员使用的插件,可以借鉴Galera的想法并在MySQL上构建分布式的强一致性集群. MySQL组复制采用的早期分布式协议是CoroSync,它是Red Hat基于Totem(图腾单环订购和成员资格协议)[8]协议开发的分布式一致性协议库. 由于Totem算法本身的存在,出于某些性能限制,自MySQL 5.7.9起,该官员采用了自行开发的基于Paxos(Mencius)的一致性协议库XCOM.

XCOM是MySQL组复制的核心组件,称为组通信核心[9]. 我们分析了XCOM的源代码. XCOM内部是由纯C语言编译的核心模块和由C ++代理实现的系统. 纯C模块由单个线程驱动paxos算法思想,并依赖于协程来实现任务调度. 因此,客户端(MySQL组复制插件)必须使用tcp连接向XCOM发送请求. 因此,XCOM具有以下缺点:
通信流程需要TCP协议栈的其他真实场景
phxpaxos(phxsql)
phxpaxos是一个由腾讯发布的基于Paxos协议的独立库. 它与MySQL结合并启动phxsql项目. 它也是基于MySQL的分布式强MySQL群集. Phxpaxos可以独立用于其他项目,它是GitHub上星数最多(1000+)的Paxos独立库. 关于phxsql的详细信息不在本文中描述,您可以参考(AliSQL X-Cluster的竞争产品分析部分),我们在这里主要分析phxpaxos. phxpaxos还是基于多Paxos的独立库. 它的体系结构使用单个Paxos单线程设计,但支持多个Paxos分区以扩展多线程功能. 此扩展需要多个数据才能进行高级分区. 因此,phxpaxos的缺点如下:
性能比较
我们仍将腾讯的phxpaxos作为竞争产品与我们进行比较(XCOM没有独立的组件,您可以间接引用MySQL Group Replication和AliSQL X-Cluster的比较测试结果)
我们在a)区域中的3个节点中部署了b)3个区域中的每个区域中的一个节点. 经过调整,我们针对不同的请求大小执行了压力测试.


您可以从上面的两个比较表中看到:
X-Paxos的第一阶段已经启动.
基于X-Paxos组团队产品的AliSQL X-Cluster(与MySQL生态系统兼容的分布式关系)已在阿里巴巴集团和优酷等许多核心业务中使用,并且运行稳定. 菜鸟,指甲,蚂蚁等几条业务线都正在上线.
我们与CNZZ团队合作. CNZZ团队为我们创建了JAVA版本的X-Paxos,并将JX-Paxos与分布式存储系统DTS组合在一起以创建一个高度可用且一致的DTS2. 稳定.
Paxos是分布式系统的基石. 即使在最近几年,关于Paxos的学术文章的新发展方向也在不断出现,我们的X-Paxos将继续发展以更好地适应集团内部和外部的需求,主要的未来发展方向如下:
多节点强一致性阅读
最后,无论您是对Paxos协议/分布式感兴趣,还是想了解更多有关X-Paxos的知识或使用X-Paxos,欢迎彼此交流和学习!
原始来源: weixin->
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-173235-2.html
北洋不得不拱手让出制海权甚至一放弃自己的旅顺大本营二躲进威海大本营而全军覆没
马云创业时
但国家面子更重要