Gossip/Epidemic ptotocol 解决的问题是multicast problem

Gossip 协议是电脑之间的通信协议,受启发与现实社会的流言蜚语。现代分布式系统通常用gossip协议来解决一些用其他方法难以解决的问题,可能是因为当前网络有一个不便的问题——过于庞大,或许是因为gossip协议有时候是最为行之有效的方法。

“传染病协议”(epidemic protocol)有时也是gossip协议的同义词,因为gossip协议传播信息的方式,有时候很类似于生物体内的病毒传播。

Multicast

红色的node想要把自己的information发送给group里面的其它的node---multicast problem

multicast与broadcast不同,broadcast是把消息发送给整个network,multicast是把消息发送给a particular group of nodes(a group of processes)

multicast protocol的需求--fault tolerance, scalability

multicast protocao需要具备有fault tolerance(nodes可能会crash,packet可能会丢失)和scalability(nodes进行扩展时不会导致费用的急剧增加)的要求

multicast protocol在网络层中是属于application level的,即它不处理underlying network.但这不是一定的,multicast protocal也常常与underlying network通信(如IP multicast)。

One of the simplest ways of doing multicast--centralized

problems:  1,fault tolerance--当只发送了一部分nodes时,sender这时fail掉了就会出错

2,the overhead on the sender 非常高

3,延时较高,每个node接收到消息的时间是o(N),N为group的大小

为了解决这些problems,我们提出了Tree-based multicast protocols

protocol在nodes建立了一个生成树

这些包括network level protocol:如IP multicast,这儿的生成树是建立在router和switches上的(in the undrlying network)

application level protocol: 如SRM,RMTP,TRAM,TMTP

如果建立的是一棵平衡树,则这棵树的高度是o(logN),则意味着node接收到消息的时间是o(logN)

group里面每个node(sender或者receive)的overhead(消费)是常数(因为children是常数,发送children数量的copies)

problems: 当有node出现错误(如crash掉时),没有接收到information时,需要建立与维护这棵生成tree,这时你需要一些bandwidth和resources去维护这个tree

在初始时可能使用IP multicast, 然后使用ACK或者NAK去修复没有接收到的multicasts

SRM使用NAKs,当node没有接收到并且等待了一会multicast message时,它向上朝root发送a repair request,当这个request被接收到,临近root的node发送它们拥有的latest multicast或者receive node丢失的multicast message.

Issue of SRM: the ACKs and NAKs 可能会implode(内爆),为了避免这个问题,SRM protocol在receiver端使用random delays,当receiver要发送NAKs,它们不是立即发送,而是等一段时间后再发送。如果需要多次发送NAKs时,可能会使用exponential backoff(指数退避),即等待的时间加倍。

RMTP: 使用ACK, receivers 间断性的发送collection of acknowledgements for all multicasts they received so far.如果有acknowledgement没有接收到的话,则会向下朝receivers发送消息。

也有可能会发生ACK storms,为了避免ACK storms,有一些特定的标记为designated receivers,ACK只会发送给这些designated receivers,然后这些designated receivers再向下发送它收到的multicast message

但是这些protocols还是会引起O(N)的ACK/NAK的消费,所以这些protocols应用的规模并不是可以任意的扩展,所以我们引入了Gossip/Epidemic ptotocol

云计算(9)--Gossip:multicast problem的更多相关文章

  1. 云计算之KVM安装(二)

    云计算之KVM安装(二) 调整虚拟机 虚拟化Intel使用的是intel VT-X AMD使用的是AMD-V 创建虚拟机步骤 1.准备虚拟机硬盘 2.需要系统iso镜像 3.需要安装一个vnc的客户端 ...

  2. ZeroMQ:云计算时代最好的通讯库

    还在学socket编程吗?还在研究为什么epoll比select更好吗? 噢,不必了! 在复杂的云计算环境中,我们面临的难题远比这个复杂得多. 庞大的服务器集群作为计算云,对来来看或许只是一个简单的搜 ...

  3. 【openstack N版】——走进云计算

    一.云计算 云计算是一种按使用量付费的模式,这种模式提供可用的.便捷的.按需的网络访问,进入可配置的计算资源共享池(资源包括:网络.服务器.存储.应用软件.服务),这些资源能够被快速提供,只需投入很少 ...

  4. A Graph Partitioning Game Theoretical Approach for the VNF Service Chaining Problem

    文章名称:A Graph Partitioning Game Theoretical Approach for the VNF Service Chaining Problem 发表时间:2017 期 ...

  5. 云计算概述和KVM虚拟化

    前言: 近些年一直听着 虚拟化.云计算.公有云.私有云.混合云这些个概念,一直想着....这些概念要用什么技术实现? 一.云计算的概念 1.传统IDC机房面都会临什么问题? 任何新事物都是由需求催生的 ...

  6. 云计算虚拟机技术-KVM安装

    云计算虚拟机技术-KVM安装 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 身为运维的小伙伴估计大家都清楚KVM,因为在CentOS里面KVM还算很折腾的一个软件,早期CentOS ...

  7. 【协议】5、gossip 协议

    Gossip是一种去中心化.容错并保证最终一致性的协议. Background:分布式环境 Gossip是为了解决分布式遇到的问题而设计的.由于服务和数据分布在不同的机器上,节点之间的每次交互都伴随着 ...

  8. 云计算概述及Centos7下安装kvm虚拟机

    云计算(cloud computing)是基于互联网的相关服务的增加.使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源 云计算到底是什么? 按定义:云计算指的是一种使用模式,是基 ...

  9. 云计算设计模式(二十一)——Sharding分片模式

    云计算设计模式(二十一)——Sharding分片模式 将一个数据存储到一组水平分区或碎片.存储和访问大量数据时,这个模式可以提高可扩展性. 背景和问题 由一个单一的服务器托管的数据存储区可能会受到以下 ...

随机推荐

  1. 路由(Routing)

    路由(Routing)  ASP.NET Core MVC 路由是建立在ASP.NET Core 路由的,一项强大的URL映射组件,它可以构建具有理解和搜索网址的应用程序.这使得我们可以自定义应用程序 ...

  2. eNSP——实现OSPF与ACL综合实验

    OSPF与ACL再前几个随笔中提到了,现在我们来做一个实例. 拓扑图: 实验案例要求: 1.企业内网运行OSPF路由协议,区域规划如图所示:2.财务和研发所在的区域不受其他区域链路不稳定性影响:3.R ...

  3. linux下源码安装rabbitMq

    一.安装erlang前期环境安装1.利用yum安装erlang编译所依赖的环境 yum -y install make gcc gcc-c++ kernel-devel m4ncurses-devel ...

  4. 在eNSP上简单的模拟企业网络场景(不同网段互连)

    额..首先你要有eNSP工具和Wireshark抓包工具,没有的话可以上网搜索一下,最好下载最新版本的,新版本中拥有更多型号的机器 这个实验我们主要模拟某公司购买了新的路由器和交换机.交换机S1连接客 ...

  5. redis的key设置每天凌晨过期的思路

    设置key凌晨过期的思路 设置key的值的时候,计算下当前时间到第二天凌晨的时间差,设置key的过期时间. 利用定时任务,每天凌晨将需要过期的key删除. 应用场景 按天为维度,限制用户对资源的访问次 ...

  6. e.g. i.e. etc. et al. w.r.t. i.i.d.英文论文中的缩写语

    e.g. i.e. etc. et al. w.r.t. i.i.d. 用法:, e.g., || , i.e., || , etc. || et al., || w.r.t. || i.i.d. e ...

  7. Quartz.Net—基本操作

    Quratz基本架构 Scheduler基本操作 /// <summary> /// 调度器信息 /// </summary> /// <returns></ ...

  8. php实现映射

    目录 映射 实现 链表实现: 二叉树实现 复杂度分析 映射 映射,或者射影,在数学及相关的领域经常等同于函数.基于此,部分映射就相当于部分函数,而完全映射相当于完全函数. 映射(Map)是用于存取键值 ...

  9. 从零开始学Flask框架-006

    重定向和用户会话 因为刷新页面时浏览器会重新发送之前已经发送过的最后一个请求.如果这个请求是一个包含表单数据的POST 请求,刷新页面后会再次提交表单. 基于这个原因,最好别让Web 程序把POST ...

  10. pandas之时间序列笔记

    时间戳tiimestamp:固定的时刻->pd.Timestamp 固定时期period:比如2016年3月份,再如2015年销售额->pd.Period 时间间隔interval:由起始 ...