繁体   English   中英

Paxos是否高度一致?

[英]Is Paxos Strongly Consistent?

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

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

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

我的问题是:如何解决这个矛盾? 我误会了吗?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM