以新手术语的顺序一致性?

时间:2019-02-02 13:57:39

标签: distributed distributed-transactions consistency

顺序一致性

  

任何执行的结果都与所有操作的结果相同   处理器按一定顺序执行,并且   每个单独处理器的操作按此顺序出现在   程序指定的顺序。

我是分布式系统的新手,在这种情况下执行是什么意思,请以简单的方式解释此定义吗?

1 个答案:

答案 0 :(得分:1)

在顺序一致且分布式环境中运行的程序的行为就像所有指令以顺序方式交错一样。这意味着可以并允许使用多个执行路径,前提是保留每个执行线程的指令顺序。

示例:

可以说我们有一个带有两个线程的程序,该程序在具有2个处理器的分布式系统中运行:

线程1:打印“ Hello \ n”; 打印“世界\ n”

线程2:打印“嗨!\ n”

假设:在这种语言中,“打印”是线程安全的,不会被缓冲。

顺序一致性规则:“ Hello”将始终打印在“ world”之前;

可能的执行1:

 Processor 1    | Processor 2
                |
 Hello          |
 World          |
                | Hi!
                |

可能执行2

 Processor 1    | Processor 2
                |
 Hello          |
                |Hi!
 world          |

可能执行3

 Processor 1    | Processor 2
                |
                |Hi!
 Hello          |
 world          |

无法执行(在“ Hello”破坏顺序一致性之前打印“ world”)

 Processor 1    | Processor 2
                |
                |Hi!
 world          |
 Hello          |

现在,重新访问您的定义:

  

任何执行的结果都与所有操作的结果相同   处理器按一定顺序执行,并且   每个单独处理器的操作按此顺序出现在   程序指定的顺序。

并使用上面的示例重新措词:

在顺序一致的分布式环境中,任何执行的结果(请参见上例中的3个执行)=以某种顺序执行处理器1和处理器2的指令,同时保留指令顺序程序中指定的(“ Hello”应在“ world”之前打印。)

即,执行结果与在不同处理器中执行的指令顺序地交织并在单个1核处理器中执行的情况相同。因此,顺序一致可以为分布式系统提供可预测性,并在涉及内存访问时建立某些重要的保证。

希望这会有所帮助!