异步分布式系统中的逻辑时间
在异步分布式系统中,消息的传递和处理需要遵循一定的顺序,以确保系统的正确性和一致性。本文将介绍线性时间和向量时间两种逻辑时间的概念和实现方法,以及它们在消息传递和处理中的应用。
1. 线性时间与全序广播
在分布式系统中,消息的广播需要遵循因果优先顺序,并且要保证所有进程以相同的顺序接收消息。为了实现这一目标,我们引入了全序广播的概念。
1.1 消息的因果关系偏序
设 $M$ 是在一次执行过程中要广播的消息集合,定义关系 $\to_M$ 如下:对于 $m, m’ \in M$,如果满足以下条件之一,则称 $m$ 因果先于 $m’$($m \to_M m’$):
- $m$ 和 $m’$ 由同一个进程广播,且 $m$ 在 $m’$ 之前广播;
- 进程 $p_i$ 在广播 $m’$ 之前已经交付了 $m$;
- 存在消息 $m’’ \in M$,使得 $m \to_M m’‘$ 且 $m’’ \to_M m’$。
1.2 全序广播的定义
全序广播抽象由以下属性正式定义:
- 有效性 :如果一个进程交付了消息 $m$,则一定有某个进程广播了 $m$。
- 完整性 :没有消息会被交付两次。
- 全序性 :如果一个进程在 $m’$ 之前交付了 $m$,则没有进程会在 $m$ 之前交付 $m’$。
- 因果优先顺序 :如果 $m \to_M m’$,则没有进程会在 $m$ 之前交
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



