【问题标题】:Can someone please explain the concept of causality in distributed computing?有人可以解释分布式计算中因果关系的概念吗?
【发布时间】:2017-10-04 15:33:45
【问题描述】:

我正在阅读一致性模型,但似乎无法理解分布式系统中因果关系的概念。我用谷歌搜索了很多,但没有找到一个很好的概念解释。人们通常会解释为什么因果关系是一件好事,但基本概念是什么?

【问题讨论】:

    标签: distributed-computing


    【解决方案1】:

    假设您正在询问分布式系统中事件之间因果关系的基本概念,以下内容可能会帮助您走上正轨。

    在分布式系统的所有进程共享的时钟完全同步的情况下,Leslie Lamport 引入了逻辑时钟的概念。逻辑时钟通过所谓的 happened-before 关系(一种因果关系)为分布式系统中发生的事件提供了部分顺序的建立。

    为了进一步说明,同一台机器上的事件可以通过依赖本地时钟来排序。但是,对于跨流程边界的事件,这通常不是一个选项。特别是,我们使用以下洞察力来建立系统中消息传递事件的因果关系: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)。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      取自https://jepsen.io/consistency/models/causal

      因果一致性体现了因果相关的操作应该在所有进程中以相同的顺序出现——尽管进程可能不同意因果独立操作的顺序。

      例如,考虑三个人之间的聊天,Attiya 询问“我们要吃午饭吗?”,Barbarella 和 Cyrus 分别回答“是”和“否”。因果一致性允许 Attiya 观察“午餐?”、“是”、“否”;和Barbarella 观察“午餐?”、“不”、“是”。但是,没有参与者会在“午餐?”问题之前观察到“是”或“否”。

      【讨论】:

        猜你喜欢
        • 2015-05-26
        • 2014-04-12
        • 2013-08-26
        • 2010-09-21
        • 1970-01-01
        • 2017-03-01
        • 1970-01-01
        • 2011-03-01
        • 2016-11-05
        相关资源
        最近更新 更多