分布式一致性协议之Paxos

2022-09-01 11:27:25

Paxos背景

paxos 是现代分布式系统中的一项重要的基础性技术,整个发展过程大概可以分为3类:

第一阶段,萌芽期。大概是1988-1996年。先是Liskov等人提出的 本质上与paxos基本一致的主从备份算法。再到后来Leslie Lamport 提出paxos论文,由于他的论文晦涩难懂,基本没人叼他。这个时间虽然有不少工作陆续跟进,但是始终处于不温不火的状态。

第二阶段,繁荣期。1966-2007年。这个时期大量学者涌入,捣鼓Paxos,从侧边完善基础Paxos算法。加上各种paxos变种的出现,对paxos算法的优化和改进。paxos已呈现百花齐放的趋势,这个时期引起了工业界的注意。

第三个阶段,硕果累累。2007-至今。2006年谷歌的2篇论文炸开了。一篇是“Bigtable: A Distributed Storage System for Structured Data”,另一篇是“The Chubby lock service for loosely-coupled distributed systems”。在这之后,Paxos逐渐被工程技术人员了解,在工业界得到越来越多的应用。

Paxos描述

paxos,确实是个蛋疼的存在,类似于武功心法,但却没有招式。这就意味着你即使理解了,想实现出来也是极其困难的,因为没有细节约束,全靠实现者脑补细节。工业界较为典型的实现包括谷歌的Chubby,ZooKeeper,Vmware的 Nutanix,和腾讯微信的PhxPaxos,最常见的描述就是基于paxos思想,也就说 实现细节各不尽相同,无法深究细节,因为论文中根本就没有说明细节。与其用啰嗦的文字来描述,不如下面来一张较为容易理解的伪代码图:

Paxos应用

paxos常见的应用为数据库备份,保证数据在多个节点上的一致性。

Name server的域名服务 ,分布式域名服务器数据的一致性。

config配置管理(zookeeper)。

总结

不要深究细节,因为论文中根本就没有说明细节,这需要具体的实现时候去考虑。理解核心意思我觉得就差不多了,

Paxos 算法在理论上被证明是正确可行的,但是现实的系统和 Paxos 差别是如此的大,以至于这些证明没有什么太大的价值。下面来自 Chubby 实现非常典型:

在Paxos算法描述和实现现实系统中间有着巨大的鸿沟。最终的系统建立在一种没有经过证明的算法之上

  • 作者:ww_250
  • 原文链接:https://blog.csdn.net/qq_15328161/article/details/89086289
    更新时间:2022-09-01 11:27:25