网络算法中的同步与负载均衡及系统模型分析
1. 共识算法变体
存在一种共识算法的变体。在之前的情况中,发起新提案(动作 a(x) 的发生)要求 y 处于待定状态。而在这个变体里,该条件被替换为 x 被请求。也就是说,在之前的算法中,站点 x 即使处于安静状态也可能发起新提案;但在这个变体中,x 即使已达成一致也可能发起新提案。并且,该算法当且仅当所有站点都达成一致时才会终止。
2. 无向树的相位同步
2.1 相位同步问题
网络算法常常以轮次或阶段的方式运行。每个站点最终会回到其初始状态,从而进入下一个阶段。有时需要一种同步机制,以确保各轮次能同步执行,即没有站点会在所有站点都完成第 k 阶段之前开始第 (k + 1) 阶段。换句话说,同时处于忙碌状态的两个站点正在执行同一轮次。例如,串扰算法及其衍生算法,如基于串扰的互斥算法和分布式重排算法,都是相邻站点轮次同步执行的例子。接下来将推导适用于任何无向树网络的相位同步算法。
2.2 算法内容
该算法中,每个站点在忙碌和待定两种状态之间交替。初始时,每个站点在第 0 轮处于忙碌状态。站点 u 可以通过消息 (v; u) 将其当前轮次编号 n 传达给其邻居 v。处于第 n 轮忙碌状态的站点 u,在接收到除邻居 v 之外所有邻居的消息后,通过动作 a(u; v; n) 进入待定状态。由于初始时没有消息,无向树的叶子节点会启动该算法。处于第 n 轮待定状态的站点 u,在接收到缺失的消息 (u; v) 后,通过动作 b(u; v; n) 进入第 (n + 1) 轮的忙碌状态。直观来讲,叶子节点会发起消息波,这些消息波会被发送到内部节点,从而涉及越来越多的节点。最终,相邻的
超级会员免费看
订阅专栏 解锁全文
1204

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



