关于Paxos和Paxos Made Simple的文章的澄清

ray*_*ter 6 implementation paxos

我读了一篇名为"Paxos简单"的论文,但仍有一些混淆:

  1. "paxos算法的实例"是指什么?每个实例都表明外部客户端有输入/命令吗?并且每个实例的paxos算法将并行执行???

  2. 如果只有一个能够发出提案的"杰出"提议者,那么paxos算法与2阶段提交算法的区别是什么?

  3. 我们在哪里可以在实际项目中应用paxos算法?

这篇论文似乎给出了更清晰的描述:http: //research.microsoft.com/pubs/64634/web-dsn-submission.pdf

还有什么想法?

Mic*_*uff 10

"paxos算法的实例"是指什么?每个实例都表明外部客户端有输入/命令吗?并且每个实例的paxos算法将并行执行???

我在另一个问题中回答了"实例"问题,所以我将在这里总结一下.

基本上,它就像是说"快速排序的实例"来引用算法的一次运行.对于Paxos,它不是对列表进行排序,而是在多个主机上选择一个值.多个paxos实例可以并行运行.参与者必须意识到这一点,所以明确提到它是好的.

如果只有一个能够发出提案的"杰出"提议者,那么paxos算法与2阶段提交算法的区别是什么?

区别提议是一个优化,而不是对算法的要求.Distinguished Proposer减少了两个提议者跳跃准备/接受消息的争用,如果您希望实例完成,这很重要.在此模型中,节点将请求转发给Distinguished Proposer,而不是为自己提出建议.如果它认为杰出建议者已经死了,那么它只是为自己提出建议.(它不一定是/它永远不会100%确信杰出的提议者已经死了).

我们在哪里可以在现实世界/项目中应用paxos算法?

首先,我使用Paxos进行领导者选举.例如,如果我有几个可以执行任务的节点是数据库主服务器,我将Paxos用于paxos实例以选择主服务器.

辅助用例是一个强大的一致性数据库.这个问题是由于Paxos中需要的消息数量很慢,所以我不会将它用于其他数据库更好的服务.也就是说,我主要用它来配置.以上面提到的数据库主要领导者选举为例.我存储结果,以便节点可以查询诸如"谁当前数据库主文件?"之类的内容.Paxos也发布了它的结果,所以在正常模式下我只是听这个流而不是实际查询.