初识Paxos

Posted 云服务圈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初识Paxos相关的知识,希望对你有一定的参考价值。

假设有一组可以提出提案的进程集合。一个一致性算法需要保证:在这些被提出的提案中,只有一个会被选定;如果,没有提案被提出,那么就不会有被选定的提案;当一个提案被选定后,进程应该可以获取被选定的提案信息。

对于一致性来说,安全性(Safety)需求就是这样的:

  • 只有被提出的提案才能被选定。

  • 只能有一个值被选定(chosen),同时

  • 如果某个进程认为某个提案被选定了,那么这个提案必须是真的被选定的那个。

我们不会精确地描述活性(Liveness)需求。整体上来说,目标就是要保证最终有一个提案会被选定,当提案被选定后,进程最终也能获取到被选定的提案。 译注

在该一致性算法中,有三种参与角色,我们用 Proposers , Acceptors 和 Learners 来表示。在具体的实现中,一个进程可能充当不止一种角色,在这里我们并不关心进程如何映射到各种角色。

假设不同参与者之间可以通过发送消息来通信,我们使用普通的非拜占庭模式的异步模型:

  • 每个参与者以任意的速度执行,可能会出错而停止,也可能会重启。当一个提案被选定后,所有的参与者都有可能失败或重启,因此除非那些失败或重启的参与者可以记录某些信息,否则是不可能存在一个解的。

  • 消息在传输中可能花费任意的时间,可能会重复,丢失,但是不会被损坏。 译注


源自:https://github.com/oldratlee/translations/blob/master/paxos-made-simple/README.rst

以上是关于初识Paxos的主要内容,如果未能解决你的问题,请参考以下文章

初识-数据库事务隔离级别

Zookeeper与Paxos

区块链共识之Paxos算法理解与实战

ROS+CPP初识

初识UmiJS

初识 HTML5 Video Blob