gpt4 book ai didi

distributed - 顺序和因果一致性

转载 作者:行者123 更新时间:2023-12-04 18:05:58 25 4
gpt4 key购买 nike

对于一个独特的商品销售数据库,如果我们使用顺序一致性,我们就可以保证,例如,这个独特的商品永远不会被重复卖给不同的人。因果一致性能保证我们做到这一点吗?

如果有一些销售同时开始/结束,系统会中断吗?

由于元素是独一无二的,我们只能出售一件元素。

谢谢

最佳答案

因果一致性向您保证,如果两个事件通常相关,那么每个人都会同意它们发生的顺序。它允许对通常不相关(或“同时”)的事件的顺序产生分歧。

由系统中的不同节点执行的两次购买商品的尝试可能不会因果关系 - 买家 B 几乎肯定不会尝试购买该商品,因为他已经看到买家A已经买了。在一个因果一致的系统中,这意味着这两个事件是同时发生的,系统中的不同节点可能不同意它们的相对顺序——A 可能认为她的购买尝试先发生并成功了,而 B 可能相信同样的事情。

您可以强制将两次购买尝试与一些额外的偶然性联系起来。与其让买家直接购买该元素,不如让他们写下他们想要购买该元素的记录。将单个节点指定为项目的“所有者”。每当它看到有购买意愿的记录时,它就会读取该商品的当前状态,并且(如果可用)将其出售给给定的购买者。购买者会观察商品是卖给他们还是其他人。

这在两个事件之间建立了一个顺序:要么所有者首先看到 A 的记录并将其卖给她,要么首先看到 B 的记录并将其卖给他。这两个事件通常没有关联,因此其他节点可能会以相反的顺序看到记录,但这没关系——他们的意见不重要,只有所有者的意见才重要。所有者的第二次读取(应该看到该元素已经售出)通常与它之前标记该元素已售出的写入有关,因为它们是在同一节点上执行的,所以我们保证它只会出售该元素一次。

关于distributed - 顺序和因果一致性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26822007/

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