2
0
Fork 0
mirror of https://github.com/Vonng/ddia.git synced 2026-06-25 10:56:50 +08:00
This commit is contained in:
qwerty756 2020-06-20 22:51:13 +08:00 committed by GitHub
parent 03cdebe141
commit 8a63385161
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

2
ch9.md
View file

@ -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并不能告诉你哪个操作先发生或者操作是否为并发的。