- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一组--分布式数据库讲课
信息科学与技术学院
讲义:不一致性的检测和解决方法
课 程 分布式数据库
组 号 第一组
姓 名 张 婧
学 号 201021077
学 院 信息学院
专 业 计算机应用技术
年 级 2010级
第一章 决定网络的状态
1.1 网络的一致视图
1.1.1 引言
两阶段提交协议:表决阶段和执行阶段。如图1所示,每时每刻只存在一个协调者,而且所有参与者都同意它为协调者。
图1
1.1.2 网络的一致视图定义
全部能工作的站点对网络的所有站点(包括它们自己在内)的状态(即工作或故障)具有一致的视图,如图2所示。
图2
1.2 决定网络的一致视图
决定网络的一致视图问题有两个方面:一方面是监视网络的状态,另一方面是把新的信息一致地传播给全部站点。
1.2.1 举例说明
如何发现一个站点有无故障?超时可导致网络的视图不一致。
图3
假设建于一个广义的网络范围内:在每个站点有一个状态表,每个站点一个表项,记录各个站点是否处于工作状态。程序可查询状态表得到状态信息。任何程序能够在一个站点设置一个“看守”,当该站点状态变化时它就收到一个中断。
在存在网络分割时,状态表和一致视图意义如下:一站点只认为那些能和它通信的站点是工作的。即只有在同一组的站点之间能获得一致的视图。一致视图的数目与分离的站点组数目一样多。
1.2.2 监视网络的状态
决定一个站点能否是工作的基本方法是向它请求一个报文然后等待到超时。我们请求站点叫做控制站点,而另一站点叫受控站点。在一广义监视算法中,不用控制站点向受控站点请求报文的办法,因为更方便的是受控站点周期性地发送I-am-up(我在工作)报文给控制站点,这避免了一个报文要在控制站点和受控站点两方面花费计时器的缺点。
一种可能的解决方法是给站点分配循环的次序,并且给每个站点指派为其前面一个站点的控制站点功能,如图4所示。
图4
在没有故障时,每个站点周期地发送I-AM-UP报文给在它后面的一个站点,并且控制一个站点I-AM-UP报文的按时到达。
1.2.3 广播新的状态
监视功能每次检测出一个状态变化时,就激活此广播功能。此功能的目的是广播新的状态表,使同一组的全部站点具有相同的状态表。因为此功能可由若干站点平行激活, 需要某种机构来控制冲突。
一种可能的方法是状态表的每个新的版本附加一个全局唯一的时间戳。在I-am-up报文中包含当前状态表的版本号。
启动新状态表广播的站点首先执行一次同步以获得一时间戳,然后发送状态表给已回答的所有站点。
第二章 不一致性的检测和解决方法
2.1 实例描述:飞机订票系统
2.1.1 实例研究概述
假设飞机订票系统有三个站点分别是:站点1:丹佛机场(CO);站点2:纽约机场(NY);站点3:亚特兰大机场(GA)。
数据库存储内容是:机场规程、班机调度、班机可用情况、旅客订票情况。
2.1.2 数据库的全局数据模式
图5
2.1.3 订票应用全局操作模式
图6
(1)实体左下角和右下角的数字表示:示例总数和应用选择的平均示例数。
(2)访问数据库中的①起飞与到达机场、②起飞与到达时间和③班机日期,以k表示这些关键词。
(3)确定班机后,建立旅客的一个新的示例及联系“订票”的一个示例,把用户的信息(名字、电话写入数据库。
(4)O表示输出,w表示写入。
2.2 实例分析
2.2.1 飞机订票系统实例问题
如果在航空订票系统网络分割故障期间,允许在不同副本上,独立地预订同一航班的机票,直至到达最大值为止,于是全部副本对于预订数目来说可能具有相同的值,但是该航班在本例下将已超额订票。
在网络分割发生时,如果我们要严格地保持数据库的一致性,那么事务最多只应在一个站点组中运行。但实际应用中,为了得到更好的可用性而暂时失去一致性是可以接受的。在这些场合允许在至少有一份所需数据的副本在网络中运行事务。以后当修复该故障时,可以试图消除已引入数据库的不一致性。
2.2.2 不一致性的检测算法描述
不一致性检测的正确方法可以采用版本号。假设为每个数据项决定出允许对其进行操作的一组站点。该数据项存放在此组站点中的副本选作主副本,其他副本则为孤立或隔离副本。
在正常工作期间,为每份副本维持一个原版本号和一个当前版本号。初始时此原版本号被置为0,而当前版本号被置为1;每当对此副本执行一次更新时,只是当前版本号加1。当发生网络分割时,每个孤立副本的原版本号被置为其当前版本号之值。这样,原版本号记录了对此副本进行任何“分割更新”以前的孤立副本的当前版本号之值。直至该分割修复为止,此版本号不会改变。这时比
原创力文档


文档评论(0)