From 8a63385161abfd1ee37ca752993a03e18cf4824b Mon Sep 17 00:00:00 2001 From: qwerty756 Date: Sat, 20 Jun 2020 22:51:13 +0800 Subject: [PATCH] Fix typo --- ch9.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch9.md b/ch9.md index 0936689..bdd88ad 100644 --- a/ch9.md +++ b/ch9.md @@ -397,7 +397,7 @@ ​ 这样的序列号或时间戳是紧凑的(只有几个字节大小),它提供了一个全序关系:也就是说每操作都有一个唯一的序列号,而且总是可以比较两个序列号,确定哪一个更大(即哪些操作后发生)。 -​ 特别是,我们可以使用**与因果一致(consistent with causality)**的全序来生成序列号[^vii]:我们保证,如果操作 A 因果后继于操作 B,那么在这个全序中 A 在 B 前( A 具有比 B 更小的序列号)。并行操作之间可以任意排序。这样一个全序关系捕获了所有关于因果的信息,但也施加了一个比因果性要求更为严格的顺序。 +​ 特别是,我们可以使用**与因果一致(consistent with causality)**的全序来生成序列号[^vii]:我们保证,如果操作 A 因果后继续操作 B,那么在这个全序中 A 在 B 前( A 具有比 B 更小的序列号)。并行操作之间可以任意排序。这样一个全序关系捕获了所有关于因果的信息,但也施加了一个比因果性要求更为严格的顺序。 [^vii]: 与因果关系不一致的全序很容易创建,但没啥用。例如你可以为每个操作生成随机的UUID,并按照字典序比较UUID,以定义操作的全序。这是一个有效的全序,但是随机的UUID并不能告诉你哪个操作先发生,或者操作是否为并发的。