分布式系统中的顺序一致性

标签 sequential distributed-system consistency

我正在学习分布式系统中的顺序一致性,但无法理解解释的术语。如果有人能用外行的话说,为什么下面的(a)和(c)是顺序一致的,而(b)不是,我将不胜感激。
谢谢。 enter image description here

最佳答案

一次执行 e的操作顺序一致当且仅当它可以排列成一个序列 s这些操作中:

  • 序列 s尊重每个进程的程序顺序。也就是说,对于任意两个操作 o1o2哪些是相同的进程,如果 o1先于 o2e ,然后 o1应该放在o2之前在 s ;
  • 在序列中 s ,每个读操作返回对同一变量的最后一次写操作的值。


  • 对于(a),s可以是:
    W(x)b [P2], R(x)b [P3], R(x)b [P4], W(x)a [P1], R(x)a [P3], R(x)a [P4]
    对于 (c),s可以是:
    W(x)a [P1], R(x)a [P2], R(x)a [P3], R(x)a [P4], W(x)b [P3], R(x)b [P1], R(x)b [P2], R(x)b [P4]
    但是,对于(b):
  • 操作R(x)b, R(x)a来自 P3要求 W(x)b来之前W(x)a
  • 操作R(x)a, R(x)b来自 P4要求 W(x)a来之前W(x)b

  • 不可能构造这样的序列s .

    关于分布式系统中的顺序一致性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30734060/

    相关文章:

    algorithm - 循环法 - 动态权重

    azure - CosmosDB 具有有限过时一致性的单区域数据库/帐户中的 K 和 T 是什么意思?

    algorithm - 是否有任何通用算法可以在分布式系统中实现最终一致性?

    python - 如何连续调用函数两次或更多次?

    c - 使用顺序 bbp 计算 pi 时丢失精度(使用 GMP)

    javascript - JS同步告警功能

    mysql - 如何确定每个组中所有加入/离开记录的净效应?

    distributed-system - RAFT 作为协议(protocol)只能支持领导者选举吗?

    Python ZeroMQ PUSH/PULL逻辑,为低端puller设置高水位线而不丢失任何消息

    Cassandra 数据库 : What ultimately does 'replication_factor' controls?