首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是什么决定了Paxos中的角色?

是什么决定了Paxos中的角色?
EN

Stack Overflow用户
提问于 2019-03-15 17:55:45
回答 1查看 50关注 0票数 1

当人们描述Paxos时,他们总是假设集群中已经有一些提出者。但是,提出者来自哪里,或者是什么决定了哪些过程是提出者?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-16 07:40:45

集群的初始配置方式和更改方式取决于试图优化系统的管理员。

您可以在不同的主机上运行不同的角色,并拥有不同数量的角色。我们可以运行三个提出者,五个接受者和七个学习者,无论你选择什么。需要写一个值的客户只需要连接到proposers。使用multi-Paxos for state replication,客户端只需要连接到proposers,因为这就足够了,并且客户端不需要与任何其他角色类型交换消息。然而,没有什么可以阻止客户通过看到来自接受者的消息来成为学习者。

只要您遵循Paxos算法,就可以将网络跳数(延迟和带宽)、硬件成本和特定工作负载的软件复杂性降至最低。

从实践的角度来看,你的客户需要能够在失败的情况下找到提出者。群集管理员将配置要推荐的节点,并确保客户端可以发现这些节点。

从抽象算法的描述中很难想象事情是如何工作的,因为许多消息拓扑都是可能的。当将算法应用于实际应用时,更明显的是设置最小化了延迟、带宽、硬件和复杂性。三节点MySQL cluster running Paxos可能就是一个例子。您希望所有三台服务器都拥有所有数据,因此它们都是学习者。所有节点都必须是接受者,因为您至少需要三个节点才能使一个节点出现故障并保持进度。它们可能都是提供软件和配置的最佳可用性和简单性的提出者。请注意,其中一个将成为distinguished leader。数据库管理员没有考虑Paxos角色,因为他们只是设置了一个三节点数据库集群。

群集中的角色可能需要更改。例如,您可能想要扩展数据库集群的容量。或者,服务器可能会死掉,因此您需要更改集群成员资格,将死掉的服务器替换为新的服务器。为了让Paxos算法工作,每个进程必须对哪些进程在哪些角色中有一个高度一致的视图。你是如何获得共识的?您可以使用Paxos来确定集群成员的新值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55179895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档