“则任何正确进程都不得在交付 $m$ 之前交付 $m'$。对因果上并发的消息(互相没有 happens before 关系),不同进程可以按不同顺序交付。标准实现让每条消息携带向量时钟,接收方…”
形式陈述 ​
在含
定义
两个向量不可比当且仅当相应事件并发。
直觉
向量时钟为每个进程保留一个因果进度分量,其中第
例子与边界
若
三进程初始均为
上述精确等价依赖固定进程身份、可靠事件规则和标准 happened-before 模型;压缩时钟或共享内存变体需要重新陈述保证。向量维度固定为参与者数量,动态成员或海量客户端会造成元数据膨胀;版本向量、点版本向量等变体会在特定复制模型中压缩信息。相等向量通常只表示相同的因果历史摘要,不意味着事件内容或物理发生时刻相同。
推论与应用
逻辑时钟 只保证因果蕴含时间递增,向量时钟则精确实现 Happens-before 的 偏序 嵌入。它用于多主复制中的冲突检测、因果广播和分布式调试;版本向量等相邻构造会针对对象版本而非每个事件维护因果摘要。其主要代价是时间戳通常包含每个进程一个分量,即
参考资料
- Friedemann Mattern, “Virtual Time and Global States of Distributed Systems,” in Proceedings of the Workshop on Parallel and Distributed Algorithms, 1989, pp. 215–226,Full paper。
- Nancy A. Lynch, Distributed Algorithms, Morgan Kaufmann, 1996,Ch. 6。