- 每一轮周期每个节点都只随机选择一个其他节点进行通信;
- 起始时,只有一个节点处于I状态,其他节点都处于S状态 。
- 推模式
文章插图
【漫谈Gossip协议与其在Redis Cluster中的实现】
- 拉模式
文章插图
由下图可见,拉模式的信息传播效率比推模式高,达到了真正的指数级收敛速度 。综合了两者的推-拉模式效率则比拉模式更高 。
文章插图
但是,推模式每轮只需要1次信息交换,拉模式需要2次,推-拉模式需要3次 。由于反熵Gossip协议每次都交换全量消息,数据量可能会比较大,因此具体选择哪种模式,还是需要考虑网络资源的开销再决定 。
谣言传播(Rumor-mongering)
谣言传播与反熵不同的一点是,它采用完整的SIR模型 。处于R状态的结点表示已经获取到了信息,但是不会将这个信息分享给其他节点,就像“谣言止于智者”一样 。另一个不同点是,谣言传播机制每次只会交换发生变化的信息,而不是全量信息,所以它对网络资源的开销会比反熵机制要小很多 。
下图示出在有界集群P中,以周期Δ执行谣言传播Gossip协议的伪代码描述 。
文章插图
图中的blind/feedback和coin/counter是怎么一回事呢?它们表示节点从I状态转移到R状态的条件 。
- coin:在每轮传播中,节点以1/k的概率从I转移到R状态 。
- counter:在参与k轮传播之后(即发送k次信息)之后,节点从I状态转移到R状态 。
- feedback:在发出信息后,对位节点有反馈才可以进入R状态 。
- blind:在发出信息后,不必等待对位节点有反馈,随时都可以进入R状态 。
文章插图
消去t,可得:
文章插图
根据初始条件:i(1 - 1/n) = 1,可以推导出:
文章插图
如果我们要让i(s*) = 0的话:
文章插图
可见,s
推荐阅读
- modbus通讯协议详解
- DNS 支持 TCP 和 UDP 双协议,但为何偏偏只钟情 UDP?
- 一文秒懂Web框架基础之WSGI协议
- 漫谈新六大普洱茶山,古六大茶山慨况
- IPSec VPN中如何传输动态路由协议?理论知识分析实现原理
- CAN总线协议详解
- 从TCP协议的原理来谈谈rst复位攻击
- 单点登录协议有哪些?CAS、OAuth、OIDC等有何异同?
- 详解三种不同的身份验证协议
- 漫谈Mysql之主从复制