《分布式系统》李西宁,课件,第8章.pptVIP

《分布式系统》李西宁,课件,第8章.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第八章 复制及复制一致性 动机和目的 改进性能 如果数据被大量的客户共享,就不应该只由一台服务器管理这些数据,因为这样做就产生了一个系统瓶颈,限制了系统的反应时间和吞吐能力。最好的方法就是把数据的副本分布在一组服务器上,每一台服务器都为地理位置就近的一组客户提供服务。 增强容错能力 如果对每一个客户请求,我们都用一组服务器来并行地提供服务,则即便有个别服务器发生故障,我们还是有可能保证客户请求被正确地执行。 强化可用性 如果数据和数据服务被复制到两台或多台服务器上,这些服务器都运行相同的软件,提供等价的服务,而且故障独立(即一台服务器的故障不会影响到其它服务器) ,则从原理上说,客户就可以从一台出现故障的服务器切换到另一台正常运行的服务器上,继续请求数据服务。 复制技术的基本结构(1) 复制透明性:客户不必了解系统中存在多个物理复制 复制一致性:所有复制的副本在任何时刻都完全一样,于是,在任何一个副本进行读操作都会得到相同的结果。 复制技术的基本结构(2) 我们用一个称为前端(front end) 的系统成份来沟通客户和数据服务。引入前端的主要目的是加强系统的透明性和模块化,客户只与前端通信,提交请求或者接收数据,而无需与复制管理器直接对话。 前端与复制管理器之间的对话方式在不同的结构模型中亦有所区别,例如,当一个前端在授理客户请求时,它可以只与一个服务管理器通信,也可以同时与多个服务管理器通信。此外,当一个客户请求在多个服务管理器上执行时,前端也可以用来核对这些复制管理器返回的结果,在少数出错的情况下,返回给客户多数一致的那个结果,从而体现系统的容错能力。 复制技术的基本结构(3) 复制技术的基本结构(4) 私语结构(gossip architecture) :复制管理器之间需要周期性地交换“私房话” ,通知彼此必须更新的数据。在这种结构中,通常的情况下每一个前端只与一个复制管理器对话,于是,当一个复制管理器执行更新操作后,就必须把更新后的结果通过内部协议传送给其它的复制管理器,以求数据一致。 主副本(primary copy) 结构:前端必须分别对待只读和更新操作。如果客户请求是只读操作,则可以由任意一个复制管理器执行;而当客户请求属于更新类操作,则必须由一个称为“主” 复制管理器的进程(服务器)授理。在一个系统中,只存在一个主复制管理器,而其它的都称为“从” 复制管理器,当然,在主管理器发生故障时,我们可以利用选举算法重新推选出一个主复制管理器。数据的更新操作都在主复制管理器上进行,并由它通知所有从复制管理器达到数据一致性。 一致性模型 所谓一致性模型,本质上是介于进程和数据仓库之间的一种协议:如果进程同意遵循某个模型给定的规则,则数据仓库就能正常运转,从而提供符合该模型定义的数据服务。 一致性模型分类 严格一致性模型 假定x为数据仓库中的一项共享数据,任何对x的读操作都必须返回最近一次写入x的值。 其中隐喻着一个全局绝对物理时钟,因此“最近” 这个术语含义精确,不存在多义性。 然而,分布式系统无法实现这种绝对时钟。 严格一致性模型图例 Wi(x)a 以及 Ri(x)b :Wi(x)a表示进程Pi把值a写入数据x;而Ri(x)b表示进程Pi从数据x读出值b;当无二义性时,我们会省略W/R操作的下标。此外,我们假定每一项数据的初始值为φ。 基于同步操作的一致性模型 这里我们讨论的模型不再关心每一个操作的具体次序,而是关心进程之间的同步。 在实践中人们发现许多应用具备下面两种特征: (1)一个分布式系统中的许多(大多数) 进程没有必要了解每一个写操作; (2)一个分布式系统中的许多(大多数) 进程没有必要了解中间性的写操作。实际上,这些所谓的中间性写操作往往是在一个临界区执行过程内部的写操作,根本没有必要暴露给临界区外的进程。 我们可以把一组写操作归结成一个临界区操作,仅当一个进程完成临界区操作之后,才把写入的最终结果通知所有进程,而没有必要担心中间写操作的次序或对外界的影响。 基于同步操作的一致性模型之特征 以客户为主的一致性模型 这类数据仓库的共同特征是以读为主,以写为辅:即便有更新操作,这些操作也很少同时进行,即便同时进行 ,也很容易解决时序冲突。这类数据仓库只满足一种非常弱的一致性模型,称为最终一致性。 例子: DNS:每个域只能由一个授权管理员进行更新工作 WWW系统就是采用最终一致性的。一般而言,只要客户一直访问数据仓库中的同一个复制,最终一致性就可以得到保证。 最终一致性模型面临的典型问题,往往发生在一个客户使用不同的复制(副本) 的情况下。为了缓解这种不一致性,我们引入以客户为中心的一致性模型。之所以说以客户为中心,是因为我们只保证一个单独的客户在访问

文档评论(0)

iris + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档