简介
Gossip协议又称传染病协议,因为gossip(流言)以类似于病毒的方式在计算机之间传播信息。
Gossip协议满足的条件
1,协议的核心包括周期性,成对性,内部进程交互
2,交互期间的信息量大小固定
3,节点交互后,至少一个agent获知另一个agent的状态
4,通信不可靠
5,交流的频率远远低于消息的传输延迟
6,对端选择的随机性,或者从全集,或者从部分集合
7,由于副本的存在,传输的信息具有隐式冗余
Gossip协议举例
假设我们在一个网络中寻找一个pattern的最优匹配,机器上运行着agent 程序,这些agents实现了gossip协议
1,用户首先要求local agent传播pattern
2,每一个agent定期并以一定的速率(0.1秒一次)随机选择一个其他的节点传播此pattern。例如节点A和B,如果A知道了pattern,那么B也会知道,随后A和B随机选择了C和D继续传播此消息。因此即使发生节点故障或者消息丢失,此消息依然会在全网范围内传播。
3,如果agent第一次收到此pattern,则开启本地查询,寻找本地的最优匹配
4,agents也传播其最优匹配。因此,如果A和B进行交互后,A和B都会知道最优匹配。最优匹配也会通过全网范围进行传播。
Log时间的复杂度,例如25000个节点,那么30轮就会结束,15轮进行pattern的传播,15轮询问最优匹配。
有偏Gossip协议
不是从全部节点中随机选择一个,考虑到网络延迟,从相邻的节点中随机选择,更高效。
为何是log时间
变量定义
初始
令第
则第
即
证明
这
则一共
推导
xt
一种方案是解通项公式,对
令
于是现在的问题转换为如何解出
另一种方案是采用微分方程的方式,然而并不完全可靠
一些简单的分析:
分析1: 由
分析2: 由
即
由
对上次进行积分过程如下:
当
考虑到上面在转化为积分过程中,会有底数的不一致性,因此也就是时间复杂度为