分布式系统中的关键算法与同步器
1. 异步系统中的最小权重生成树(MST)算法
在设计异步MST算法时,有两种主要的方法。
第一种方法是在异步环境中模拟同步的GHS算法。在这种模拟中,运行相同的同步算法,但会增加额外的协议步骤和控制消息来实现同步。同步GHS算法在异步化时,难点主要在于步骤2。如果未标记边两端的两个节点处于不同的级别,算法可能会出错。以下是处理此问题的两种可能方法:
- 方法一 :在每一轮之后,依次在标记边上进行额外的广播和汇聚广播。新识别出的领导者在树边上广播其ID和轮数;然后叶子节点发起汇聚广播以确认此广播。当汇聚广播在领导者处完成时,它开始下一轮。在步骤2中,如果EXAMINE消息的接收者处于较早的轮次,它会简单地延迟对EXAMINE的响应,从而强制实现同步。这种方法会额外消耗n·log(n)条消息。
- 方法二 :当一个节点参与新的一轮时,它会通知每个邻居(可通过未标记或非树边到达)其新的级别。只有当未标记边上的邻居都处于同一轮时,该节点才会在步骤2中发送EXAMINE消息。这种方法会额外消耗|L|·log(n)条消息。
第二种方法是直接解决由于缺乏同步而产生的所有困难。原始的异步GHS算法采用了这种方法,尽管它是基于同步GHS算法设计的。通过精心设计异步算法,它实现了与同步算法相同的消息复杂度O(n·log(n)+l)和时间复杂度O(n · log(n) · (l + d))。设计此算法存在一些困难:
- 在步骤2中,如果两个节点处于不同的组件或不同的级别,需要有一种机制来确定这一点。
- 如果允许不同级别的组件合并,那么在最坏的情况下,某
超级会员免费看
订阅专栏 解锁全文
598

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



