- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我将一些机器放在一个弹性集群中,并希望在其中运行一些共识算法(比如 Paxos)。假设他们知道网络的初始大小,比如 8 台机器。
因此,他们将运行共识算法,法定人数为 5。
现在,考虑这些情况:
如果我使用当前的集群大小来获得仲裁,我就会受到分区 split 的影响。因为对于底层集群,情况 (1) 和 (2) 看起来完全一样。但是,如果我使用固定数字,我将无法缩小集群(如果我扩大集群,我会因分区而出现不一致)。
我有第三种选择,即在扩展时通知所有机器集群的大小,但是有可能在扩展之前发生分区,例如,该分区没有接收到新的大小并且有足够的法定人数以使用旧大小达成共识。
Paxos(以及任何其他安全共识算法)是否无法在弹性环境中使用?
最佳答案
基于群体的共识协议(protocol)从根本上需要群体才能运行。 Multi-Paxos 和 Raft 都可以在集群和仲裁大小动态变化的环境中使用,但必须以始终保持一致仲裁的受控方式完成。例如,如果您当前使用的簇大小为 8,并且希望将该簇的大小减小到 4。您可以这样做。但是,将集群大小减少到 4 的决定必须是经过原始 8 同意的共识决定。
你的问题有点不清楚,但听起来你是在问你是否可以安全地将你的集群大小减少到 4 作为一种恢复机制,以防某种网络分区导致你原来的 8 集群无法运行。答案实际上是否定的,因为这样做的决定不可能是双方同意的,并且试图落后于共识算法实际上肯定会导致不一致。如何定义新的 4 组?你如何保证所有同行都得出相同的结论?您如何确保他们都同时做出相同的决定?
当然,您可以手动做出所有这些决定,并通过关闭每个系统上的共识服务并手动重新配置其仲裁定义来强制系统恢复。假设您没有搞砸(对于任何现实世界的部署来说,这是一个压倒性的大假设),这将是安全的。不过,更好的方法是设计系统,使一个或两个网络分区不会停止系统(很多站点)或使用最终一致性模型来优雅地处理偶尔的网络分区。没有绕过 CAP 限制的 Elixir 。
关于distributed-computing - Paxos 和发现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34422868/
我读了一篇名为“Paxos made simple”的论文,但仍然有些困惑: “paxos 算法的实例”指的是什么?每个实例是否表明有来自外部客户端的输入/命令?每个实例的paxos算法将并行执行??
谁能告诉我为什么提案 Id 在 Paxos 中需要是唯一的? 我认为这个proposalId需要唯一的原因是我们需要使用它来拒绝旧提案并对最大投票进行排序。所以如果我们做第一阶段:acceptor 只
考虑一个具有 3 个节点的分布式系统——n1、n2、n3。节点之间有一个共享数据 x。 Paxos 在节点上运行。一开始,x等于4。 客户端向n1发送更新请求,将x的值改为5,n1和n2通过运行Pax
考虑一个具有 3 个节点的分布式系统——n1、n2、n3。节点之间有一个共享数据 x。 Paxos 在节点上运行。一开始,x等于4。 客户端向n1发送更新请求,将x的值改为5,n1和n2通过运行Pax
我实现了共识算法(基于Paxos)。我添加了一些随机测试用例,看起来不错。但是想通过模型检查进行测试吗?找不到正确的文章。请分享如何在Paxos中进行模型检查 谢谢 最佳答案 您可以使用 Spin M
Paxos 算法在使用 2F + 1 个处理器时最多可以容忍 F 次失败。据我了解,该算法仅适用于固定数量的处理器。是否可以在可以动态添加和删除节点的动态环境中使用该算法? 最佳答案 是的,有可能,甚
谁能给我一个真实世界的例子,说明 Paxos 算法是如何在分布式数据库中使用的?我读过很多关于 Paxos 的论文来解释算法,但没有一篇真正用实际的例子来解释。 一个简单的例子可能是一个银行应用程序,
我试图理解 paxos 和两阶段提交之间的区别,作为在多台机器之间达成共识的手段。两阶段提交和三阶段提交非常容易理解。 3PC 似乎也解决了在 2PC 中会阻塞的故障问题。所以我不是很明白Paxos到
假设我将一些机器放在一个弹性集群中,并希望在其中运行一些共识算法(比如 Paxos)。假设他们知道网络的初始大小,比如 8 台机器。 因此,他们将运行共识算法,法定人数为 5。 现在,考虑这些情况:
我想确保 3 台服务器之间的一致性。 这是一个共识问题。 每个服务器都会监听用户并将收集到的数据保存在本地文件中。 我尝试使用 Rpc 将新数据发送到所有其他服务器但徒劳无功。 另外我想使用算法 pa
Paxos 算法(http://research.microsoft.com/en-us/um/people/lamport/pubs/paxos-simple.pdf)中有一点我不明白。这是关于如何
我最近对 Paxos 进行了大量研究,但我一直想知道一件事,我没有看到任何答案,这意味着我不得不问。 Paxos 包括一个递增的提案编号(可能还有一个单独的轮次编号,具体取决于您正在阅读的论文的作
我正在研究 Paxos,我对算法在这个人为设计的示例中的行为方式感到困惑。我希望下图能解释这个场景。 几点: 每个代理充当提议者/接受者/学习者 准备消息的格式为(instance, proposal
我正在学习Paxos算法(http://research.microsoft.com/en-us/um/people/lamport/pubs/paxos-simple.pdf),有一点我不明白。 我
为什么 multi-paxos叫做multi-paxos?我看不出它是如何“多”的。 最佳答案 这是关于多 轮算法,以同意来自稳定领导者的顺序请求,消息最少。最初没有公认的领导者,您必须至少运行一轮基
我读过 Lamport 的 paper在 Paxos 上。我还听说,出于性能原因,它在实践中使用不多。分布式系统中常用的共识算法有哪些? 最佳答案 不确定这是否有帮助(因为这不是来自实际生产信息),但
谁能给我一份 Paxos 的实际用例列表。这是真正的问题,需要作为更大问题的一部分达成共识。 下面是Paxos的用例吗? 假设有两个客户端在扑克服务器上互相玩扑克。扑克服务器被复制。我对 Paxos
我将使用多 Paxos 实现键值存储。我会有几个节点,其中一个是主节点。该主节点接收更新请求并将值复制到从节点。 我的问题是如何选择主节点(或领导者)?我还能使用 Paxos 算法吗?如果是这样,您认
为什么 Paxos 需要两个阶段(prepare/promise + accept/accepted)而不是一个阶段?也就是说,仅使用 prepare/promise部分,如果提议者已收到大多数接受者
在 Datastax 的文档中,他们说 Paxos 协议(protocol)有四个阶段(意思是在轻量级事务中): Prepare/Promise Read/Results Propose/Accept
我是一名优秀的程序员,十分优秀!