是否有可能在分布式系统中获得强大的一致性?

问题描述 投票:0回答:1

用户发送写请求。然后,有人发送对该资源的读取请求。读请求在写请求之前到达,因此读请求数据是陈旧的,但尚无法得知它是陈旧的。同样,您也可能有两个对同一资源的写请求,但后来的写请求首先到达。

当发生类似竞争的情况时,如何在分布式系统中提供强大的一致性?

concurrency distributed-system consistency
1个回答
0
投票

什么是一致性?您说两次写入“乱序”到达,但是确定该顺序的是什么?建立该顺序的是您保持一致性的基础。

简单的依据是世代号;因此,任何对象O都会以版本N进行扩充。检索O时,也会检索N。写入时,将写入O.N。如果在写入O.N时对象位于O.N + 1,则该对象已过期并产生错误。 O的多个版本在一段时间内仍然可用。

当然,您不能在任何分布广泛的系统中随便复制该对象,因为O的两个断开连接的所有者可能允许不同的操作,这些操作无法统一。例如,Etcd在有限的时间内就解决了这一问题。区块链可以更广泛地解决它。

© www.soinside.com 2019 - 2024. All rights reserved.