我正在阅读一致性模型,但似乎无法理解分布式系统中因果关系的概念。我在谷歌上搜索了很多,但没有找到对这个概念的很好的解释。人们通常会解释为什么因果关系是一件好事,但其基本概念是什么?
最佳答案
假设您正在询问分布式系统中事件之间因果关系的基本概念,以下内容可能有助于您走上正轨。
由于分布式系统的所有进程没有完全同步的时钟,Leslie Lamport 引入了逻辑时钟的概念。逻辑时钟通过所谓的先发生关系,即因果关系,为分布式系统中发生的事件提供了偏序的建立。
为了进一步说明,同一台机器上的事件可以通过依赖本地时钟来排序。但是,对于跨越流程边界的事件,这通常不是一个选项。特别是,我们使用以下洞察力来建立系统中消息传递事件的因果关系:send(m)
在处理 p
发生在 receive(m)
之前在处理 q
.这使我们能够在这些事件之间建立因果关系。
我不确定我的解释有多大帮助,但是,如果您还没有这样做,请查看 Leslie Lamport 的原始论文 Time, Clocks, and the Ordering of Events in a Distributed System应该有助于为您解决问题。接下来,你可能想看看Spanner: Google's Globally Distributed Database以创造性的方式处理分布式系统中的时间问题 (TrueTime)。
希望这可以帮助。
关于distributed-computing - 有人可以解释一下分布式计算中因果关系的概念吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46568765/