初识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的主要内容,如果未能解决你的问题,请参考以下文章