在动态环境中使用 Paxos
当使用 2F + 1 个处理器时,Paxos 算法最多可以容忍 F 个故障。据我了解,该算法仅适用于固定数量的处理器。是否可以在动态环境中使用该算法,可以动态添加和删除节点?
Paxos algorithm can tolerate up to F failures when using 2F + 1 processors. As far as I understand, this algorithm works only with fixed number of processors. Is it possible to use this algorithm in dynamic environment, where nodes can be added and removed dynamicaly?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
是的,这是可能的,甚至有一些关于它的论文。据我所知,我读到了一些关于如何做到这一点的描述,这里http ://research.microsoft.com/pubs/64634/web-dsn-submission.pdf希望这就是您所问的问题。寻找“动态 paxos”。
Yes it is possible, there are even some papers on it. From what I remember I read a bit on how to do it was described here http://research.microsoft.com/pubs/64634/web-dsn-submission.pdf Hope that's what you were asking about. Look for "dynamic paxos".
Stoppable Paxos 论文更容易理解,并且允许安全重新配置(添加和减少节点):http://research.microsoft.com/apps/pubs/default.aspx?id=101826
The Stoppable Paxos paper is a bit easier to understand and permits safe reconfiguration (addition and subtraction of nodes): http://research.microsoft.com/apps/pubs/default.aspx?id=101826
如果您有绝对最大节点数,那么它应该仍然有效。
但是,您会遇到这样的情况:动态节点数为 6,最大值为 11,因此,如果 1 个节点发生故障,您就不走运了(默认情况下,不存在的节点会发生故障)。如果删除和添加节点,您可以将删除的节点的状态恢复到添加的节点,以避免将其计为故障。
If you have an absolute maximum number of nodes then it should still work.
But you'd be left with a situation where your dynamic node count is 6 your maximum is 11, so if 1 node fails you're out of luck (the non-existent nodes are fails by default). If your removing and adding nodes you could restore the state of a node you removed to a node you add to avoid it being counted as a failure.
是的。 Gryadka 是一个 JavaScript Paxos 实现,支持 500 行动态重新配置。它基于 Vertical Paxos 和 Raft 的思想。
Yes. Gryadka is a JavaScript Paxos implementation supporting dynamic reconfiguration in 500 lines. It is based on ideas from Vertical Paxos and Raft.