分布式系统中的消息传递、并发与状态管理
1. 逻辑时钟与事件排序
逻辑时钟在分布式系统中用于标记事件的发生顺序,但它并不能对所有事件进行全局排序。例如,在一个包含三个进程(p1、p2、p3)的系统中,无法确定某些初始事件(如e1 1、e1 2、e1 3)的顺序。不过,通信事件可以让不同进程协调它们的逻辑时钟,像进程p2会因为消息m2携带的逻辑时钟信息,将事件e3 2标记为6。
逻辑时钟还缺乏间隙检测的重要属性。给定两个事件e和e′及其逻辑时钟值LC(e)和LC(e′),无法确定是否存在事件e′′使得LC(e) < LC(e′′) < LC(e′)。比如在进程p1中,事件e4 1处于e3 1和e5 1之间,但在进程p3中,事件e3 3和e4 3虽然逻辑时钟值差距较大,却是连续的。
2. 消息传递规则
- 消息接收与传递的区别 :消息接收和消息传递是两个不同的操作。接收消息后,需要依据传递规则决定何时将消息实际传递给目标进程。只有在接收到消息后才能进行传递,即receive(m) → deliver(m)。
- FIFO传递 :先进先出(FIFO)传递要求消息按照发送的顺序进行传递。对于每对源 - 目标进程(pi, pj),若sendi(m) → sendi(m′),则deliverj(m) → deliverj(m′)。即使通信通道不能保证FIFO传递,也可以通过为每个发送的消息附加序列号来强制实现。
- 因果传递 :因果传递是FIFO传递的扩展,当一个进程从不同源接收消息时适用。假设
超级会员免费看
订阅专栏 解锁全文
2205

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



