gpt4 book ai didi

distributed-computing - 分布式数据库事务上下文中的Paxos算法

转载 作者:行者123 更新时间:2023-12-01 03:37:34 25 4
gpt4 key购买 nike

我对 paxos 有一些困惑,特别是在数据库事务的上下文中:

在论文“paxos made simple”中,它说在第二阶段,提议者需要选择其中一个接受者之前接受过的具有最高序列号的值之一(如果不存在这样的值,则提议者可以自由选择)建议选择原值)。

问题:

  • 一方面,我理解这样做是为了保持共识。
    但另一方面,我对实际的值(value)感到困惑 - “必须向接受者发送之前已接受的值(value)”有什么意义?
  • 在数据库事务的上下文中,如果需要提交一个新值怎么办?是否需要启动一个新的 Paxos 实例?
  • 如果上述问题的答案是"is",那么接受者如何重置状态? (根据我的理解,如果不重置状态,提议者将被迫发送之前已接受的旧值之一,而不是自由提交任何新值。)
  • 最佳答案

    “Paxos made simple”论文中有不同种类的paxos。一种是Paxos(普通paxos、单度paxos、synod),另一种是Multi-Paxos。从工程师的角度来看,第一个是分布式一次写入寄存器,第二个是分布式仅追加日志。
    答案:

  • 在 Paxos 的上下文中,实际值是成功写入一次写入寄存器的值,它发生在大多数接受者接受同一轮的值时。在论文中表明,新选择的值始终与以前相同(如果已选择)。因此,要获得实际值,我们应该启动新一轮并返回新的成功写入值。
    在 Multi-Paxos 的上下文中,实际值是添加到日志中的最新值。
  • 使用 Multi-Paxos,我们只需向日志添加一个新值。为了读取当前值,我们读取日志并返回最新版本。在底层 Multi-Paxos 是一组 Paxos 寄存器。为了写入一个新值,我们将它与当前值的位置放在一个空闲寄存器中,然后我们用空操作填充以前的空闲寄存器。当两个寄存器包含相同前一个值的两个不同下一个值时,我们选择数组中位置最低的寄存器。
  • 使用 Multi-Paxos 是可能且微不足道的:我们只是通过免费注册开始新一轮的 Paxos。虽然普通的 Paxos 没有覆盖它,但我们可以“扩展”它并变成分布式变量而不是 dist。登记。我在 "A memo on how Paxos works" 中描述了这个想法和证明。邮政。
  • 关于distributed-computing - 分布式数据库事务上下文中的Paxos算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33473513/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com