高可用服务的实例之gossip体系_第1页
高可用服务的实例之gossip体系_第2页
高可用服务的实例之gossip体系_第3页
高可用服务的实例之gossip体系_第4页
高可用服务的实例之gossip体系_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、如何通过复制技术来获得服务的高可用性?1高可用服务的实例研究:GOSSIP体系结构、 BAYOU和CODA1.Gossip体系结构2Gossip系统的模型分析 gossip的体系结构是一种可以实现高可用性服务的框架,也是复制技术的具体应用,它的具体途径是把数据复制到需要这些数据的客户组的临近点。从它的名字可以看出:副本管理器周期地使用gossip消息来传送客户的更新。Gossip系统保证各个节点间保持数据松散的一致性。3Gossip 服务中的查询和更新操作Gossip服务提供两种基本操作:查询和更新RMRMRM FE FE客户Query , prevVal , newUpdate , prev

2、Update idupdatevalquerygossip系统作出两个保证:随着时间的推移,每个用户总能获得一致性服务副本之间松弛的一致性时间戳向量4Gossip服务处理大致流程:请求对更新操作的响应协调执行对查询操作的响应协定5Gossip副本管理器及其主要状态组件副本管理器状态值值的时间戳更新日志副本时间戳已执行操作表时间戳表副本时间戳更新日志值时间戳值执行操作表时间戳表FEFEoperationID Update Prev副本时间戳 副本日志更新Gossip消息稳定的更新其他副本管理器副本管理器6查询操作一个查询请求q包含操作的描述和一个由前端发送的时间戳q.pre,valueTS 是副

3、本的值的时间戳,当满足条件: q.pre valueTS 时, q能够应用到副本的值上。一旦执行了查询,副本管理器返回valueTS给前端,作为显示的时间戳new。前端将其与其他的时间戳合并: frontENDTS:=merge(frontENDTS,new) 7按因果次序处理更新前端提交一个更新请求u给一个或更多的副本管理器,u包括一个更新的规约 u.op、前端的时间戳u.pre和一个唯一的标识符u.id。当副本管理器i收到前端的更新请求时,他通过操作表和日志中的记录查找这个操作的标识符以确定请求是否已被处理。查到了。丢弃这个请求,否则将复制时间戳第i个元素加1。8按因果次序处理更新 u(u

4、.op u.pre u.id)EF副本管理器查找是否丢弃复制时间戳第i个元素加1修改日志分配唯一的时间戳9Gossip消息源副本管理器发送的一个gossip消息包括两项:日志m.log和副本时间戳m.ts。收到gossip消息的副本管理器有三项主要任务:将到达的日志和它自己的日志合并。执行任何以前没有执行并已经稳定了的更新。知道更新已执行并且没有被重复执行的危险时,删除日志和已执行操作表中的记录。10更新的传播gossip系统之所以可以使各个副本管理器最终达到一致性是因为其对更新的传播,然而,它的更新传播有其独特的特点:gossip系统并不指定何时副本管理器相互交换gossip消息,也不指定某

5、个副本管理器如何选择其他的副本管理器来发送gossip消息。如果所有的副本管理器要在一个可接收的时间内收到所有的更新,必须要有一个健壮的更新传播策略。 所有副本管理器收到某个给定更新所花费的时间取决于3个因素: 网络分区的频率和持续期间 副本管理器发送gossip消息的频率 选择一个副本管理器并发送gossip的策略11网络分区网络分区将一个副本管理器组分成两个或更多的子组。 BBBBUTDeposit(B,3)网络分区Withdraw(B,4)12复制方案的设计基于这样的假定:网络分区最终被修复。因此,单个分区中的副本管理器必须保证在分区期间执行的请求在分区修复后不会造成不一致。乐观方法:分

6、区恢复后,对更新区验证悲观算法:对可用性有所限制,法定数共识法13选择合适的gossip交换频率:gossip的交换周期按小时或分钟计将更合适。选择合作者的策略:随机策略:使用加权概率选择合适的合作者拓扑策略:将副本管理器安排为一个固定图确定策略:14Gossip系统的可伸缩性问题 如果一个客户进行因果序的更新操作,并且R个副本管理器在gossip消息中收集G个更新,那么交换的消息数量为2+(R-1)/G。 前端和副本管理器之间通常需要2个消息。 第二项是发送到其他副本管理器的gossip 消息的更新消息。15增强可伸缩性的方法:将大多副本管理器设为只读的。16Bayou体系和操作变换方法17

7、Bayou系统的焦点在于探索让移动客户活跃地读和写共享数据的机制。即使系统必须处理主动的和被动的通信中断,在用户看来,系统应该,在可能的程度上,看起来像一个中心化的、高度可用的数据库服务。18Bayou 提供弱的一致性Bayou的副本管理器通过成对地交换更新来处理变化的网络连接,成为反熵协议。Bayou能够进行领域特点的冲突检测和冲突解决操作变换:一个或多个相冲突的操作被取消或改变以解决冲突的过程19冲突检测Bayou系统以应用特定的方式,检测更新冲突。当数据库的状态以应用相关的方式,与一个写操作期望的状态不同时,就发生一个写冲突。一个写操作不仅包括要写或更新的数据,而且包括一个依赖集合。依赖

8、集合是应用提供的查询及其期望的结果的集合。如果查询,当运行在一台服务器上查询一个数据库的当前拷贝时,没有返回期望的结果,此时就检测到一个冲突。20 为了防止执行操作相冲突,每一个Bayou还包含一个依赖检查和一个合并过程。一个副本管理器在执行操作前调用依赖检查过程。如果发现冲突,调用合并过程。如果无法找到合适的操作替代,系统报错。21Gossip与Bayou的比较22Coda文件系统Coda提供了以下适用于网络文件系统的特性:为移动的客户提供了断开操作。 它是一种自由软件。 通过客户访问的持续缓存提供了高可用性。 服务器复制功能。 提供了认证的安全模型、加密和访问控制。 部分网络失效后能够继续

9、工作。 具有网络带宽适应性。 较好的可扩展性。 即使在网络失效时也为共享定义了良好的语法。 23Coda类似于Bayou系统,也采用了乐观策略使用了冲突检测,在进行检测时不考虑数据语义为解决副本之间的冲突提供了非常有限的支持24复制策略系统调用首先进入核心的虚拟文件系统(VFS),然后它将请求传送给核心中的Coda文件系统模块进行处理。Coda文件系统模块包含着从VFS来的最近的一些请求,然后它将此请求交给Coda缓冲管理器venus进行处理。Venus通过察看硬盘缓冲区、向服务器发请求等方式来定位文件的所在地。如果在硬盘缓冲区中没有找到匹配的文件,则通过远程系统调用向服务器发请求,并且将取到的文件放在cache中,这时,这个文件就是一个普通的文件了,因此可以通过本地文件系统对该文件进行读写的操作。如果在硬盘缓冲区找到了此文件,则可以直接使用这个文件。当对此文件进行了一定的修改并且关闭了以后,venus将把新文件传送给服务器从而来更新服务器上的文件。其它的操作如修改文件系统,创建新目录,删除文件,去除符号链接等都可以传送给服务器。 25但是由于网络有时会出现问题,因此如何保证文件的连续性是一个非常重要的问题。当venus意识到服务器不可用时,它就将客户端对文件的更新

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论