视图同步通信:原理、算法与性能分析
1. 视图同步通信的背景与概念
在分布式系统中,消息的可靠广播和视图一致性是两个重要的问题。当一个进程从视图中被排除后,处理来自该进程的消息会变得奇怪且违反直觉。例如,若进程 q 已从视图 V 中被排除,应用程序程序员处理来自 q 的消息就会很棘手。一方面,为确保广播的可靠性,消息 m 必须被进程 p 传递;另一方面,为保证视图信息的一致性,m 不能在新视图中被传递,p 必须丢弃它。
视图同步通信提供了解决这一困境的方法,它将视图的安装与消息的传递相结合,并根据消息流对每个新视图进行排序。如果一个(正确的)进程在安装视图 V 之前传递了消息 m,那么所有安装视图 V 的进程都应在安装该视图之前传递 m。这种抽象也被称为视图同步广播,因为它给人一种失败是同步的,并且相对于传递的消息是原子发生的错觉。
2. 视图同步通信的规范
视图同步通信扩展了可靠广播抽象和组成员抽象,因此其接口包含了这两个原语的事件。具体来说,视图同步通信原语的接口包含以下事件:
- 请求事件 :⟨Broadcast | m ⟩,用于向所有进程广播消息 m。
- 指示事件 :
- ⟨Deliver | p, m ⟩,输出由进程 p 广播的消息 m。
- ⟨View | V ⟩,安装视图 V。
- ⟨Block ⟩,请求暂时停止广播新消息,直到安装下一个视图。
- 请求事件 :⟨BlockOk ⟩,确认在安装下一个视图之前不会广播新消息。
视图同步通信的属性如下表所
超级会员免费看
订阅专栏 解锁全文

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



