P2P Membership Management for Gossip-Based Protocols
摘要:
Probabilistic Gossip scheme要求每一个成员都掌握全局的成员信息,以统一的随机选择gossip目标,这样就限制了这种方案难以扩展到大规模组成员的情况下。作者提出一种叫做(SCAMP:Scalable Membership Protocol)的方案,之前者不同之处在于,SCAMP可以扩展到大规模组成员的情况下。因为:该方案可以一种完全分布式的形式,为每个组成员提供关于全局组成员信息的一个部分视图(Partial View),最关键的是这个Partial View的尺寸(Size)可以稳定的收敛到一个能够支持Gossip算法正确运行的值。这个值是组大小(全部组成员的数目)的函数,但是任何一个成员都不需要知道组的大小。
简单的说:以前需要每个成员都了解全局信息才能使Gossip算法运转开来,而在他提出的算法中,每个成员只要了解全局信息的一个Partial View就可以把Gossip算法跑开了。因此,他的算法可以在更大规模的组中应用得更好。
此外,还提供了一种机制,在这种机制下,即使subscription patterm非常地不平衡,也可以达到一个平衡的Partial View Size。(看到这里还不明白这2个balance是什么意思,猜想第1个应该是指p2p成员的加入退出行为非常不稳定,频繁,第2个应该指部分视图的大小值很稳定,接着往下看)
进行理论分析与实验论证的结果都证明该新算法与之前那些需要全局信息的相比,是可比的(性能和效果上)。扩展性实验也证明了该算法的良好的可扩展性。
1. 简介
2. 分布式成员协议
2.1 Gossip组播的需求分析(要实现哪些目标)
在基于Gossip的协议中,消息(数据报文)都是以这样一种形式传递到给每一个组成员:当一个节点产生一个报文的时候(他是源),只将该报文发送到其它节点的一个子集,当该子集中的节点收到此报文的时候,也效仿做同样的事情(即也只将报文发送其其它节点的一个子集). 由于子集的选择是随机的,因此这种方式也就提供应对随机节点失效的一种弹性和冗余性. 所在关键是子集选择的大小(Size),这个Size无疑应该是全部组成员数目的函数.
所以,问题就在于,对于一定规模的组成员数目,子集的大小应该选择为多大才能保证报文可以一个较高的概率可靠地被发送给所有的组成员呢?在作者之前的工作中已经得到一个结论,即:
如果有n个节点,而每个节点都向其它
个节点转发该报文,那所有节点都收到该报文的概率值收敛到
. 注意这个值是指每一个节点都收到该报文的概率,而不是某一个特定节点收到报文的概率.
2.2 基本组成员管理协议
2.2.1 加入(Subscription)
2.2.2 退出(Unsubscription)
2.2.3 从孤立状态恢复(Recovery From isolation)
3. 重新平衡图的机制(Mechanism for rebalancing the graph)
3.1 迂回机制(Indirection)
3.2 租约机制(Lease)
4. 仿真结果
5. 相关研究工作
6. 结论
浙公网安备 33010602011771号