分布式数据库中的可靠性_第1页
分布式数据库中的可靠性_第2页
分布式数据库中的可靠性_第3页
分布式数据库中的可靠性_第4页
分布式数据库中的可靠性_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

1、经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性20122012年年11 11月月20132013年年1 1月月经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,

2、他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性分布式数据库的可靠性的概念及其度量分布式数据库的可靠性的概念及其度量分布式数据库系统的故障原因和容错技术分布式数据库系统的故障原因和容错技术分布式数据库的可靠性协议分布式数据库的可靠性协议网络分割和提交协议网络分割和提交协议不一致性监测和解决方法不一致性监测和解决方法分布式数据库中的可靠性分布式数据库中的可靠性 第第6章章经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要

3、我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性可靠性 指数据库在一给定时间间隔内不产生任何失败的概率。 它强调数据库的正确性,要求数据库正确运行,既符合某种规格化要求。 通常用来描述不可修复的系统。可用性 强调的是当需要访问数据库时,它是可用的。 指在给定的时间t,数据库按照说明能正常运行的概率。 通常用于描述那些可以修复的系统。两者关系 通常认为构建可用性的系统比可靠性的系统容易; 两者是统一的,可靠性高的系统可用性自然是好的; 两者又是矛盾的,增加错误风

4、险的情况下,可提高可用性;采用 太谨慎的策略会降低可用性。1.1 分布式数据库可靠性概念1 分布式数据库可靠性概念及其度量经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性例: Site1 Site2 x1 x2 Lock x1 Lock x2 2PC Ready故障出现故障出现Site1也Ready故CommitS

5、ite 2 等待等待此时站点2有两种可能策略:策略一:以正确性为标准,x2保持在锁定状态, 直到故障修复时为止。提高了可靠性,但牺牲了可用性。策略二:在数据库中引入不一致性的风险下尽量提高可用性,解锁x2, 其它事务可以使用它的值。两阶段提交协议实现了第一个策略,牺牲可用性获得高可靠性;如果要得到高可用性,就要考虑使用第二个策略。Site 1 正常结束1.1 分布式数据库可靠性概念1 分布式数据库可靠性概念及其度量已知:x1和x2是x的副本;事务T是更新x的事务;Site 1是协调站点且是事务T原发站点;遵守两阶段提交协议。经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内

6、训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性通常使用两个参数的指标来度量一个分布式数据库的可靠性程度: 平均故障间隔时间MTBF和平均修复时间MTTR。平均故障间隔时间MTBF 指在可以自我修复的系统中相继失败之间的期望时间; 通过可靠性函数R(t)来计算MTBF=0R(t)dt 可靠性函数R(t)与系统失败的概率有直接的关系。平均修复时间MTTR 是指修复一个失败的系统所需要的

7、期望时间。 它与失败概率有关指数型失败和修复的概率的系统可用性可以描述为: A=MTBF/(MTBF+MTTR)1.2 平均故障间隔时间和平均修复时间1 分布式数据库可靠性概念及其度量经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性可用性系统 5个9(99.999%)常用来描述可用性系统; 建立一个高可用性系统比建

8、立一个通常要求的系统要花费更高的成本(时间、人力、财力等)。 具体设计时要仔细分析,与最终用户商定,以确定用户可以忍受多长的停机时间,以及停机可能造成的影响,并且明确说明高可用性系统的成本。1.2 平均故障间隔时间和平均修复时间1 分布式数据库可靠性概念及其度量经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性故障

9、任何偏离规范说明的行为称为故障。软故障和硬故障 软故障包括间歇性(intermittent)和瞬变性(transient)故障,通过重启动来修复; 硬故障指永久性故障, 错误设计等。2.1 系统失败的原因2 分布式数据库系统的故障原因和容错技术软故障 占90%以上并且该比例稳定 67年, 美空军指出计算机中电子器件故障80%是间歇性的 67年,IBM 指出 90%故障是间歇性的 80年,研究指出软故障的发生明显高于硬故障 87年,Gray指出 大部分软件故障是瞬变性故障经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle

10、基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性软件故障 通信或数据库的原因是产生软件故障的主要原因。 软件故障的典型原因是代码中的Bug, 曾有报告指出, 1000条指令中, 0.25-10个BUG。 软件故障难以排除,一个典型的软件工程在到达测试阶段以前,要经过大量的设计审查和代码检验。审查不同计算机系统中出错的统计数据 IBM/XA 的OS 可靠性报告 57%是硬件, 12% 软件, 14%操作, 7% 环境(斯坦福线性加速器SLA

11、C) Tandem计算机 18%硬件 25% 软件 25%维护 17%操作, 14%环境 AT&T 5ESS数字交换机 32.3%硬件, 44.3%软件, 17.5%操作 2.1 系统失败的原因2 分布式数据库系统的故障原因和容错技术经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性永久性故障错误的设计不稳定或者临界

12、的组件不稳定的外部环境操作者的过失系统失败永久性错误间歇性错误瞬变的错误系统失败的原因经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性容错 设计出一种使系统识别出可能会发生的错误的方法。在系统中建立一种机制,使错误在造成系统故障之前就会被检测出来,并能被清除或得到补偿。错误预防技术 保证所实现的系统不包含任何错误。

13、错误预防有两个方面: 错误回避:保证系统不会带入错误的技术(详细的设计方法学和质量控制) 错误清除:清查那些在使用了错误回避技术路线后还残留在系统中的错误,并清除它们(需要大量的测试和证实过程)2.2 基本容错方法和技术2 分布式数据库系统的故障原因和容错技术经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性故障检测

14、 潜伏的故障:故障发生一段时间后才被检测出来; 错误潜伏期:从故障发生到被检测出来的时间; 平均检测时间(MTTD):平均错误潜伏时间; 平均修复时间(MTTR):修复一个失败的系统所需要的期望时间; 平均故障间隔时间(MTBF):在可以自我修复的系统中相继的失败 之间的期望时间, 由经验或从可靠性函数计算。2.2 基本容错方法和技术2 分布式数据库系统的故障原因和容错技术经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多

15、,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性 MTBF MTTDMTTR在这段时间内,可能发生多起错误故障发生造成错误检测到错误修复故障发生造成错误时间 相继发生的事件2.2 基本容错方法和技术2 分布式数据库系统的故障原因和容错技术经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多

16、少第六章分布式数据库中的可靠性冗余 所有容错系统设计中都采用的基本原则是在系统的组件中提供 冗余。 对冗余的附加和补充的容错原则是设计的模块化。模块化 系统的每个组件被设计为具有定义很好的输入/输出接口的模块。 模块化可以把故障隔离在单一的组件中。容错系统实现 故障-停止模块(fail-stop module) 进程对(Process pairs)2.2 基本容错方法和技术2 分布式数据库系统的故障原因和容错技术经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多

17、,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性time正常 停止 恢复 正常易失存储丢失稳定存储 ok故障-停止模块 不断地对自身进行检测,当检测到一个故障时,就自动停止。 优点是缩短了故障检测的潜伏期。2.2 基本容错方法和技术2 分布式数据库系统的故障原因和容错技术经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大

18、概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性进程对(Process pairs) 通过软件模块的双工来实现容错。 它的思想是通过两个相互通信和合作的进程,完成系统的每一个服务的方法来减少单个的故障点。这两个进程中的一个叫做主进程,另外一个叫备份进程,它们同时提供同样的服务,主进程与备份进程都是基于故障-停止模块实现。 进程对机制要求进程之间进行通信,可以通过共享存储区的手段来实现进程之间的通信。 当设计一个可靠的软件环境时,使用基于消息传送的通信机制来实现一个操作系统是非常重要的。由于每个进程都在自己的地址区间内执行,一个进程可能发生

19、的错误就不会传播到另外一个进程,这种方法可以有效地进行错误隔离。2.2 基本容错方法和技术2 分布式数据库系统的故障原因和容错技术经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性目的 分布式数据库可靠性协议是为了保证在分布式数据库上执行的分布式事务的原子性和持久性。这些协议描述了begin-transaction,

20、 read, write, abort, commit和recover原语的分布式执行过程。原语 Begin_Transaction:该命令执行登记的功能; Read:该命令指定一个数据项;LRM先在Trans的缓冲区中读,若不在,则向缓冲区管理器发Fetch命令,读出数据后,LRM将它交给调度程序。 Write:该命令指定了数据项和新值。若在Buffer中得到,则在那更新, 否则对Buffer Manager发Fetch命令,读出数据并修改,同时数据的前像和修改后的后像写入Log。 Abort:该命令是异常终结事务处理失败的一个信号。LTM读取相应的事务处理日志,并且用数据项的前值取代在易变

21、数据库中的更新后的数据项的值。同时,调度程序被告知异常终结已经被成功地完成。 Commit:该命令使LTM将一个事务处理结束记录写入日志中。3.1 分布式数据库可靠性协议的组成3 分布式数据库的可靠性协议经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性分布式数据库系统的可靠性协议组成 包括提交协议、终结协议、恢复协

22、议。 提交和恢复协议详细说明了提交命令和恢复命令是如何被执行的。 终结协议是分布式系统特有的协议。在执行一个分布式事务时, 若一个站点有故障,希望其它站点也停止该事务。处理这种情况 的技术就称为终结协议。3.3 分布式数据库可靠性协议的组成3 分布式数据库的可靠性协议经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性

23、终结协议与恢复协议的比较 假若一个站点失效 终结协议确定了未失效站点如何处理该失效事件; 恢复协议确定失效站点重启动后,进程(协调者,参与者)恢复它的状态的过程。 网络分割时 终结协议采取必要的措施终结在不同网络区间执行的活动事务; 当网络重新连接后,恢复协议保证使各个冗余数据库相互一致。3.1 分布式数据库可靠性协议的组成3 分布式数据库的可靠性协议经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要

24、报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性两阶段提交协议的要点: 将本地原子性提交行为的效果扩展到分布式事务, 保证分布式事务提交的 原子性, 在不损坏日志情况下, 实现快速故障恢复,提高DDB系统的可靠性。 两阶段提交协议把事务的提交过程分为两个阶段: 第一阶段:表决阶段,即形成一个共同的决定。 第二阶段:执行阶段,目的是实现这个决定。 允许参与者单方面撤销事务,直到做出肯定性的建议; 一旦参与者确定了提交或者撤销提议,它不能再更改它的提议; 当参与者处于就绪状态,根据协调者发出的消息的种类,它可转换为相应的提交或者撤销状态; 协调者依据全局提交规

25、则作出全局终结决定; 在发生故障的情况下,协调者和参与者可能会进入互相等待的状态,一般采用定时器来解决这种问题。每个进程进入一个状态时都要设置定时器。如果所期待的消息在定时器超时之前没有到来,定时器向进程报警,进程于是调用它自己的超时协议。3.2 两阶段提交协议的演变3 分布式数据库的可靠性协议经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少

26、第六章分布式数据库中的可靠性初始写begin_commit到日志等待有要求撤消的?写commit到日志提交写end_of_trans.到日志初始准备提交?写ready到日志就绪消息类型?写abort到日志写commit到日志提交撤消撤消写abort到日志写abort到日志协调者协调者参与者参与者nonoabortcommit发送准备消息发送准备消息发送发送“建议撤消建议撤消”消消息息发送发送“建议提交建议提交”消息消息发送发送“全局撤消全局撤消”消消息息发送发送“全局提交全局提交”消息消息ACK发送发送”应答应答ACK确认确认”消息消息两阶段提交协议的活动yesyes经理,日照港的下属单位,咨

27、询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性假定撤销2PC和假定提交2PC协议 这两种协议的基本思想是:只要当一个已就绪的参与者向协调者询问事务的结果时,如果在协调者的日志中找不到该事务的任何信息, 就认为该事务“被撤销”(对假定撤销2PC协议)或“已经提交”(对假定提交2PC协议)。 目的是改善2PC的性能; 假定撤销2PC协议中,协

28、调者不必等待参与者的ACK消息,减少了 协调者与参与者之间传递消息的数量; 当使用假定撤销2PC协议时,可以看出协调者在决定撤销后,可以 立即忘记该事务。它可以写入撤销记录,且不用等待参与者确认撤 销命令。写入撤销记录后,协调者无需写入事务结束记录。3.2 两阶段提交协议的演变3 分布式数据库的可靠性协议经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报

29、价多少多少第六章分布式数据库中的可靠性假定撤销2PC和假定提交2PC协议 假定提交2PC协议中,可以不将Prepare写入Log,减少了Log写入的次数; 如果使用假定提交2PC协议,协调者在发送准备消息之前,强制性写入一条收集记录,它包含了参与执行事务的所有参与者的名字,此时协调者进入收集状态。随后协调者发送准备消息并进入等待状态。 当参与者收到准备消息后,以“建议撤销”或者以“建议提交”消息响应。当协调者收到所有参与者的决定后,它就可以作出该事务是撤销或提交的决定。 如果决定撤销,协调者写入撤销记录,进入撤销状态,并发送“全局撤销”命令,直到协调者收到参与者的撤销确认,就写入一条结束记录,

30、并忘记该事务。 如果它决定提交该事务,就写入提交记录,发送“全局提交”消息,然后忘记该事务。当参与者收到“全局提交”消息后,它们写入提交记录,并更新数据库。如果参与者收到“全局撤销”消息,它们写入撤销记录并确认。3.2 两阶段提交协议的演变3 分布式数据库的可靠性协议经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性

31、事务阻断:某个站点上本来可以终结(提交或撤销)的子事务,由于分布式数据库系统的故障,它必须等到有故障的子事务修复后,取得必要的信息才能决定。故障的恢复是不可预料,所以它占有的资源也不能释放,也没法继续执行,此时称该事务处于事务阻断状态。阻断协议:提交协议称为阻断协议是指发生某类故障时,使分布式事务可能处于阻断状态。在两阶段提交协议中,如果在提交阶段协调者出故障,若某个参与者与此同时宣布其已就绪提交,它必须等到协调者修复后,才能决定是否提交。在这种情况下,两阶段提交协议是阻断协议。事务阻断降低了系统的可用性,因为它们持有的锁不能被释放。3.3 事务阻断与终结协议3 分布式数据库的可靠性协议经理,

32、日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性终结协议:允许一事务在有故障情况下仍能正确地结束。它提高系统的可用性。当正常的提交过程被故障中断时,就调用终结协议,使无故障的站点正确地终结该事务。终结的可能类型(提交还是撤销)依赖于当事务被故障中断时提交协议使它处于什么状态。终结协议仅对某些类型的故障起作用,而不是对所有

33、故障都起作用。3.3 事务阻断与终结协议3 分布式数据库的可靠性协议经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性判断2PC协议是终结协议的条件 至少有一个站点已收到结果命令。此时,可由该站点告诉其它参与者关于该事务的结果,并由它们来终结该事务。 没有一个参与者曾收到过结果命令,并且只有协调者站点出故障。此时,所

34、有参与者站点都是可工作的,参与者可以选举一个新的协调者,然后继续。 没有一个可工作的参与者曾收到此命令,并且至少有一个参与者出故障时,终结就不可能。因为可工作的参与者无法知道出故障的参与者它已干过什么,仍无法独立作出决定。3.3 事务阻断与终结协议3 分布式数据库的可靠性协议经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中

35、的可靠性终结协议在协调者和参与者的定时器超时时发挥作用。超时发生在目的站点在期望的时间内没有从发送站点得到所期望的消息时。处理超时的方法依赖于失效发生的时间和失效的类型。因此需要考虑在两阶段提交协议执行时的不同时间发生失效的情况。由于使用两阶段提交协议的状态转换图而使讨论变得容易。状态图中,圆形表示状态,边表示状态转换,终结状态用同心圆表示。边的标号按如下方式解释:横线上方表示状态转换的原因,即所收到的消息;横线下方表示状态转换时所发出的消息。3.4 2PC协议的终结协议3 分布式数据库的可靠性协议经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信

36、息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性超时处理技术 协调者超时:协调者可以在三种状态中发生超时故障:等待状态、 提交状态和撤销状态。 在等待状态超时:在等待状态,协调者正在等待参与者的局部 决定。协调者不能单方面提交事务,因为不满足全局提交规则。协调者可以决定“全局撤销”事务,此时,协调者在日志中写 入撤销记录,并向所有参与者发送“全局撤销”消息。 在提交状态或撤销状态发生超时:在这种情况下,协调者

37、不能 确定是否在所有参与者站点上本地恢复管理程序都执行完提交 或撤销过程。因此协调者重复发出“全局提交”命令或“全局 撤销”命令给没有响应的站点,并等待确认。3.4 2PC协议的终结协议3 分布式数据库的可靠性协议经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性初始写begin_commit到日志等待等待有要求撤消

38、的?写commit到日志提交提交写end_of_trans.到日志初始准备提交?写ready到日志就绪消息类型?写abort到日志写commit到日志提交撤消撤消撤消写abort到日志写abort到日志协调者协调者参与者参与者nonoabortcommit发送准备消息发送准备消息发送发送“建议撤消建议撤消”消消息息发送发送“建议提交建议提交”消息消息发送发送“全局撤消全局撤消”消消息息发送发送“全局提交全局提交”消息消息ACK发送发送”应答应答ACK确认确认”消息消息两阶段提交协议的活动yesyes经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信

39、息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性协调者超时IWCAFcommit-申请申请-prepare*ack*-ack*-_t_abortanyabortanycommit_t_commit_t_abort*noabort*prepared*commit*t=timeout经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,

40、需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性超时处理技术 参与者超时(被阻断时出现) 在初始状态发生超时:参与者在该状态下正在等待“准备”消息,此时协调者必然在初始状态发生失效。参与者在超时后可以单方面撤销事务。 在就绪状态发生超时:参与者在该状态下正提议提交事务,但 不知道协调者的全局决定,参与者不能单方面作出决定。由于 它处于就绪状态,它必须提议事务。因此,它不能改变它的决 定和单方面撤销。另一方面,它不能单方面决定提交事务,因 为其他

41、参与者可能提议撤销。在这种情况下,参与者将保持阻断,直到它从其他站点处了解到事务的最终命运。3.4 2PC协议的终结协议3 分布式数据库的可靠性协议经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性初始写begin_commit到日志等待有要求撤消的?写commit到日志提交写end_of_trans.到日志初始初始

42、准备提交?写ready到日志就绪就绪消息类型?写abort到日志写commit到日志提交撤消撤消写abort到日志写abort到日志协调者协调者参与者参与者nonoabortcommit发送准备消息发送准备消息发送发送“建议撤消建议撤消”消消息息发送发送“建议提交建议提交”消息消息发送发送“全局撤消全局撤消”消消息息发送发送“全局提交全局提交”消息消息ACK发送发送”应答应答ACK确认确认”消息消息两阶段提交协议的活动yesyes经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他

43、们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性参与者超时IRCA申请-prepareprepared等价于结束状态_t_ ping申请-preparenocommitackabortackcommitackabortack经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你

44、看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性设计终结协议 如果参与者之间能够互相通信,可以设计一个更加分布的终结协议。 超时的参与者只需简单地请求其他参与者来帮助它作出决定。考虑: 假定Pi是超时的参与者(询问Pj),其它参与者Pj按如下响应: Pj处于初始状态,于是单方面Abort,并回送“建议abort”给Pi; Pj处于就绪状态,此时不能帮助Pi终结; Pj处于提交或撤销状态,此时向Pi发送“建议提交”或“建议撤销”消息。3.4 2PC协议的终结协议3 分布式数据库的可靠性协议经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息

45、系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性协调者站点失效 协调者在初始状态失效 发生在协调者初始化提交过程之前。 因此,它将在恢复时启动提交过程。 协调者在等待状态失效 这时协调者已经发送了“准备”命令。 恢复时,协调者将从头开始启动提交过程,再次发送“准备” 消息。 协调者在提交状态或撤销状态失效 这时,协调者已经把它的决定通知了参与者,并终结了事务。 在恢复时,如果它已经收到了所有的确

46、认消息,就不需要做 任何事情。 否则,就要启动终结协议。3.5 2PC协议的恢复协议3 分布式数据库的可靠性协议经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性参与者站点失效 一个参与者在初始状态失效 在恢复时,该参与者应该单方面撤销事务。 一个参与者在就绪状态失效 这时协调者已经收到失效站点在失效前发送的肯定决定

47、。 恢复时,失效站点的参与者认为是在就绪状态发生了超时, 于是启动终结协议来处理该事务。 一个参与者在提交状态或撤销状态失效 这些状态表示了终结条件,所以在恢复时,参与者不需要采取 任何专门的措施。3.5 2PC协议的恢复协议3 分布式数据库的可靠性协议经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性提交协议是非阻

48、断的充要条件是在其状态转换图中不包含两种情形: 没有状态是即与提交状态又与撤销状态“相邻”; 不存在不可提交状态是与提交状态“相邻”;相邻 指从一个状态经过一次转换就可以到达的另一个状态。3.6 三阶段提交协议3 分布式数据库的可靠性协议经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性2PC中的状态 如果任意一个进

49、程处于提交状态,就知道所有站点都已建议提交 事务,这些状态称为可提交的。C(提交)状态是可提交状态, 其它 为不可提交状态。 就绪状态是不可提交状态,由于一个进程处于此状态并不意味着所有进程都已建议提交事务,所以它是不可提交的。 等待状态是不可提交状态。 它们都侵犯了非阻断协议的充要条件, 从而考虑改变2PC, 使其满足非阻断协议条件。在等待状态和提交状态之间, 或者在就绪状态和提交状态之间增加另一种状态作为缓冲状态, 用于在准备提交但还没有提交的时候,从初始状态到提交状态之间有三次状态转换,从而有了3PC协议。3.6 三阶段提交协议3 分布式数据库的可靠性协议经理,日照港的下属单位,咨询经理

50、,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性IWcommitpreparevote-abortglobal-abortvote-commitprepare-to-commitIRpreparevote-commitglobal-abortACKprepare-to-commitready-to-commitpreparevote-abort3

51、PC中事务的状态转换图PCPCready-to-commitglobal-commit global-commitACK(a) 协调者(b) 参与者经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性协调者参与者初始写begin_commit到日志等待等待有要求撤消的?写Prepare-to-commit到日志准备准备

52、提交提交写end_of_trans.到日志初始准备提交?写ready到日志就绪就绪消息类型?写abort到日志写prepare-to-commit到日志准备准备提交提交撤消撤消写abort到日志写abort到日志准备撤消提交全局撤消准备提交准备提交ACKACK nono abortPrepare-to-commit写commit到日志提交提交提交提交写commit到日志撤消提交准备提交准备提交 在 中事务执行的过程 3PC经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参

53、课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性协调者超时 在等待状态超时:与2PC中协调者在等待超时相同, 协调者单方面 决定撤销事务,然后它在日志中写入撤销记录,向所有建议提交事 务的参与者发送“全局撤销”消息。 在预备提交状态超时:此时协调者不知道未响应的参与者是否已经 转换到预备提交状态。但它知道它们至少处于就绪状态,这意味着 它们一定已经建议提交事务。因此协调者可以发送“预备提交”消 息使所有参与者转换到预备提交状态,再将提交记录写入日志,并 发送“全局提交”消息给所有可操作

54、的参与者。 在提交/撤销状态超时:协调者不知参与者是否已确实执行了提交 (撤销)命令,但是它们至少处于预备提交状态。因此协调者不需要 做专门的处理。3.7 三阶段提交协议的超时处理3 分布式数据库的可靠性协议经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性参与者超时 在初始状态超时:与2PC中的情况相同。 在就绪状

55、态超时:参与者已经建议提交事务,但不知道协调者的 全局决定。由于与协调者失去联系,终结协议将选举一个新的协 调者,新协调者根据三阶段提交协议的终结协议终结事务。 在预备提交状态超时:参与者已收到“预备提交Prepare-to-commit”消息, 正在等待来自协调者的“全局提交”消息, 处理 同第二条。3.7 三阶段提交协议的超时处理3 分布式数据库的可靠性协议经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人

56、,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性协调者参与者 PREPAREPREPAREDCOMMIT PRECOMMITACK1.等待超时: 撤销事务3. 提交/撤销超时: 忽略1. 初始超时: 撤销事务2. 就绪超时: 终结协议3.预备提交超时: 终结协议2. 预备提交超时: 把参与者移入预备提交经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报

57、的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性终结协议规则 新协调者在等待状态:将全局撤销事务。此时参与者可能处于初始状态、就绪状态、撤销状态或预备提交状态等任何状态。若参与者处于预备提交状态,正在等待“全局提交”消息,但它们却收到“全局撤销”消息。它们的状态转换图不存在从预备提交状态到撤销状态的转换,而这种转换对于终结协议是必需的,所以该转换应当是执行终结协议时的一种合法转换。 新协调者处于预备提交状态:此时参与者可以处于就绪状态、预备提交状态或提交状态。没有参与者可能处于撤销状态。协调者因此将全局提交事务, 并发送“全局提交”消息。 新协调者处于撤销状

58、态:收到第一个消息后,参与者也都转换到撤销状态。3.8 三阶段提交协议的终结协议3 分布式数据库的可靠性协议经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性3PC与2PC恢复协议的差别很小 协调者在等待状态失效 按照终结协议,参与者已终结事务, 因此, 协调者在恢复时必须向 它们询问以确定如何终结事务。 协调者在预

59、备提交状态失效 终结协议再一次指导可操作参与者终结事务。由于此过程可从预备提交状态转换到撤销状态,协调者必须询问以确定如何终结事务。 一个参与者在预备提交状态失效 它必须询问以确定其它参与者如何终结事务。3.9 三阶段提交协议的恢复协议3 分布式数据库的可靠性协议三阶段提交协议的一个特性: 使用三阶段提交协议,能够无阻断地终结事务。经理,日照港的下属单位,咨询经理,日照港的下属单位,咨询2个内训:个内训:1.信息系统项目管理信息系统项目管理2.oracle基础,需要我基础,需要我们报一下价格,他们主要参课学员不多,大概们报一下价格,他们主要参课学员不多,大概8个人,价格不要报的太高,你看报价个

60、人,价格不要报的太高,你看报价多少多少第六章分布式数据库中的可靠性网络分割是由通信线路故障引起的 简单分割,仅仅是网络分裂成两部分 多重分割,更复杂网络分割非阻断协议的存在性 即在发生网络分割时, 是否存在允许独立恢复的协议 独立恢复是指站点重启动时, 无需远程访问若存在处理分割的非阻断协议, 那么, 该协议可使某个分割中的站点到达终结决定, 而且这个决定与另一分割中的决定一致一般结论 独立恢复协议只存在于单站点故障的情形 若发生网络分割的时候, 丢了报文的话, 则不存在任何非阻断的协议能从网络分割故障中恢复4.1 网络分割概述4 网络分割与提交协议经理,日照港的下属单位,咨询经理,日照港的下

温馨提示

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

最新文档

评论

0/150

提交评论