【问题标题】:Is Paxos Strongly Consistent?Paxos 是强一致的吗?
【发布时间】:2019-06-08 17:30:51
【问题描述】:

考虑一个具有 3 个节点的分布式系统 - n1、n2、n3。节点之间有一个共享数据 x。 Paxos 在节点上运行。一开始,x 等于 4。

客户端向 n1 发送更新请求,将 x 的值更改为 5。n1 和 n2 通过运行 Paxos 就新值达成共识,但 n3 发生了一些链接故障,因此 n3 没有最新的 x 值.

我们知道 Paxos 提供了强一致性。另一方面,如果客户端向 n1 发送读取请求,同时向 n3 发送另一个读取请求,则返回的值不一样(其中一个是 5,另一个是 4)。因此,运行Paxos后,系统并没有强一致性。

我的问题是:我们如何解决这个矛盾?我是不是误会了什么?

【问题讨论】:

    标签: concurrency distributed-computing distributed-system consensus paxos


    【解决方案1】:

    在 multi-paxos 中,同行可能会落后,正如您所注意到的。如果您从法定人数中读取值,尽管您可以保证看到最新的值,那么诀窍就是找出是哪一个。并非所有应用程序都需要这个,但如果你的应用程序需要,一个非常简单的扩充就足够了。只需使用元组而不是原始值,其中第一项是更新计数器,第二项是原始值。每次对等点尝试更新值时,它也会更新计数器。因此,当您从仲裁中读取时,具有最高更新计数器的元组保证是最新值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-27
      • 2022-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-27
      • 2012-11-20
      • 1970-01-01
      相关资源
      最近更新 更多