本文来源于阿里云-云栖社区,原文点击这里。
Paxos(分布式一致性算法)作为分布式系统的基石,一直都是计算机系统工程领域的热门话题。Paxos号称是最难理解的算法,其实真的这么困难么?
“X-Paxos”是阿里巴巴数据库团队面向高性能、全球部署以及阿里业务特征等需求,实现的一个高性能分布式强一致的Paxos独立基础库。X-Paxos具体又有哪些优势,能给现有的系统带来什么收益呢?
分布式一致性算法(Consensus Algorithm)是一个分布式计算领域的基础性问题,其最基本的功能是为了在多个进程之间对某个(某些)值达成一致(强一致);进而解决分布式系统的可用性问题(高可用)。Paxos是最重要的分布式一致性算法,很多人都把它作为“分布式一致性协议”的代名词(Mike Burrows, inventor of the Chubby service at Google, says that“there is only one consensus protocol, and that’s Paxos”)。
关于Paxos的历史和原理,已经有很多经典的论文可以参考,也有厂内外的文章有详细的描述,本文就不再重复了。感兴趣的同学可以阅读下这些论文[1,2,3,4]。
虽然Paxos的理论提出已经17年了,从第一个Paxos的工业实现到现在也已经11年了,但是直到近几年,无论是顶级会议,还是业内,Paxos相关的文章和项目还是层出不穷。
转向业内,虽然使用了Paxos及各种变种的产品已经层出不穷;但是真正工业级的,独立的,Paxos基础库还是相当的少见:Google并没有开源其任何Paxos基础库(连包含Paxos的项目都没有开源过); Facebook也没有公布过包含Paxos的产品; Apache有Zookeeper,但是其协议并不能支持一个高吞吐的状态机复制,且并没有提供独立的第三方库,可供快速接入。