【发布时间】:2019-02-02 13:57:39
【问题描述】:
顺序一致性
任何执行的结果都与所有的操作相同 处理器以某种顺序执行,并且 每个单独的处理器的操作出现在这个序列中 程序指定的顺序。
我是分布式系统的新手,在这种情况下执行是什么意思,请简单解释一下这个定义?
【问题讨论】:
标签: distributed distributed-transactions consistency
顺序一致性
任何执行的结果都与所有的操作相同 处理器以某种顺序执行,并且 每个单独的处理器的操作出现在这个序列中 程序指定的顺序。
我是分布式系统的新手,在这种情况下执行是什么意思,请简单解释一下这个定义?
【问题讨论】:
标签: distributed distributed-transactions consistency
在顺序一致的分布式环境中运行的程序会表现得好像所有指令都以顺序的方式交错。这意味着多个执行路径是可能的并且是允许的,只要保留每个执行线程的指令顺序。
示例:
假设我们有一个具有两个线程的程序在具有 2 个处理器的分布式系统中运行:
线程 1: print "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 核处理器中执行时相同。因此,顺序一致为分布式系统提供了可预测性,并在涉及内存访问时建立了某些重要的保证。
希望这会有所帮助!
【讨论】: