Gossip协议-推导运算分析

简介

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都会知道最优匹配。最优匹配也会通过全网范围进行传播。
  5. Log时间的复杂度,例如25000个节点,那么30轮就会结束,15轮进行pattern的传播,15轮询问最优匹配。

有偏Gossip协议

不是从全部节点中随机选择一个,考虑到网络延迟,从相邻的节点中随机选择,更高效。

为何是log时间

变量定义

初始 1 1 1个人,全部 n n n个人,一个人每次感染 b b b个人,则感染率为 p = b / ( n − 1 ) p = b/(n-1) p=b/(n1)
令第 i i i轮有 x i x_i xi个人被感染, n − x i n-x_i nxi未感染
则第 i + 1 i+1 i+1被感染的新的人数为 x i ∗ p ∗ ( n − x i ) x_i * p * (n-x_i) xip(nxi)
x i + 1 = x i + x i ∗ p ∗ ( n − x i ) x_{i+1} = x_i + x_i * p * (n-x_i) xi+1=xi+xip(nxi),且 x 1 = 1 x_1 = 1 x1=1

证明

x i x_i xi个人中每一个人能够感染的新人为: b ∗ ( n − x i ) / ( n − 1 ) b * (n-x_i)/(n-1) b(nxi)/(n1)
则一共 x i x_i xi个人贡献的感染人数为: x i ∗ b ∗ ( n − x i ) / ( n − 1 ) = x i ∗ p ∗ ( n − x i ) x_i * b * (n-x_i) / (n-1) = x_i * p * (n-x_i) xi

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值