我正在阅读一致性模型,但似乎无法理解分布式系统中的因果关系概念。我已经google了很多,但没有找到这个概念的好解释。人们通常解释为什么因果关系是一件好事等等,但基本概念是什么。
答案 0 :(得分:0)
假设您在询问分布式系统中事件之间因果关系的基本概念,以下内容可能有助于您走上正确的轨道。
在没有分布式系统的所有进程共享的完美同步时钟的情况下,Leslie Lamport介绍了逻辑时钟的概念。逻辑时钟通过所谓的发生在之前的关系(一种因果关系)提供对分布式系统中发生的事件的部分顺序的建立。
为了进一步说明,可以依靠本地时钟来订购同一台机器上的事件。但是,对于跨越流程边界的事件,这通常不是一种选择。特别是,我们使用以下洞察来建立系统中消息传递事件的因果关系:流程send(m)
上的p
发生在流程receive(m)
的{{1}}之前。这使我们能够在这些事件之间建立因果关系。
我不确定我的解释是多么有用,但是,如果你还没有这样做,Leslie Lamport的原始论文Time, Clocks, and the Ordering of Events in a Distributed System应该有助于为你解决问题。接下来,您可能需要查看Spanner: Google's Globally Distributed Database以创造性的方式来处理分布式系统中的时间问题(TrueTime)。
希望这会有所帮助。