Concurrency 在分布式系统中有可能获得强一致性吗?

Concurrency 在分布式系统中有可能获得强一致性吗?,concurrency,distributed-system,consistency,Concurrency,Distributed System,Consistency,用户发送写入请求。 然后有人发送该资源的读取请求。 读请求在写请求之前到达,因此读请求数据已过时,但无法知道它是否已过时。 同样,您也可以对同一资源有两个写请求,但后面的写请求首先到达 当这样的竞争条件可能发生时,如何在分布式系统中提供强一致性?什么是一致性?你说两封信“出了问题”,但是什么建立了这种秩序?建立秩序的东西是你保持一致性的基础 一个简单的基础是代数;因此,任何对象O都会被版本N扩充。当您检索到一个O时,您也会检索到N。当您写入O.N时,您会写入O.N。如果对象在O.N+1时写入O.

用户发送写入请求。
然后有人发送该资源的读取请求。 读请求在写请求之前到达,因此读请求数据已过时,但无法知道它是否已过时。 同样,您也可以对同一资源有两个写请求,但后面的写请求首先到达


当这样的竞争条件可能发生时,如何在分布式系统中提供强一致性?

什么是一致性?你说两封信“出了问题”,但是什么建立了这种秩序?建立秩序的东西是你保持一致性的基础

一个简单的基础是代数;因此,任何对象O都会被版本N扩充。当您检索到一个O时,您也会检索到N。当您写入O.N时,您会写入O.N。如果对象在O.N+1时写入O.N,则该对象过时并生成错误。O的多个版本在一段时间内仍然可用


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

CAP定理就是你要问的。是的,你可以有很强的一致性,但这是有代价的。我不是问高层抽象,我是问在处理并发竞争条件时,如何在分布式系统中实现强一致性。