6章_分布式数据库中的可靠性_
发布时间:2024-09-02
发布时间:2024-09-02
分布式 数据库 可靠性
徐俊刚(xujg@http://www.77cn.com.cn)2009年2月——2009年6月
分布式 数据库 可靠性
第6章 分布式数据库中的可靠性
1. 分布式数据库的可靠性的概念及其度量 2. 分布式数据库系统的故障原因和容错技术 3. 分布式数据库的可靠性协议 4. 网络分割和提交协议 5. 不一致性监测和解决方法
分布式 数据库 可靠性
1 分布式数据库可靠性概念及其度量1.1 分布式数据库可靠性概念 可靠性– 指数据库在一给定时间间隔内不产生任何失败的概率。 – 它强调数据库的正确性,要求数据库正确运行,既符合某种 规格化要求。 – 通常用来描述不可修复的系统。
可用性– 强调的是当需要访问数据库时,它是可用的。 – 指在给定的时间点系统可以正常运行的概率。 – 通常用于描述那些可以修复的系统。
两者关系– 通常认为构建可用性的系统比可靠性的系统容易 – 两者是统一的,可靠性高的系统可用性自然是好的 – 两者又是矛盾的,增加错误风险的情况下,可提高可用性;采 用太谨慎的策略会降低可用性
分布式 数据库 可靠性
1 分布式数据库可靠性概念及其度量1.1 分布式数据库可靠性概念已知
例:
Site1 x1 Lock x1 2PC Ready
Site2 x2 Lock x2
x1和x2是x的副本 事务T是更新x的事务 Site 1是协调站点 Site 1是事务T原发站点 遵守两阶段提交协议
Site1也Ready 故Commit 故障出现 Site 2 等待
此时Site 2有两种可能:a> 以正确性为标准,x2则 等待, 并Lock 2, 直到故障恢 复。提高了可靠性,但牺牲 了可用性。 b> 引入不一致性的风险下, 尽量提高可用性,解锁x2, 其它事务可以使用它的值。
Site 1 正常结束
分布式 数据库 可靠性
1 分布式数据库可靠性概念及其度量1.2 平均故障间隔时间和平均修复时间 平均故障间隔时间– 指在可以自我修复的系统中相继失败之间的期望时间 – 通过可靠性函数来计算MTBF=∫0∞R(t)dt – MTBF与系统失败的概率有直接的关系
平均修复时间– 是指修复一个系统所需要的期望时间,MTTR – 它与失败概率有关
指数型失败和修复的概率的系统可用性– A=MTBF/(MTBF+MTTR)
可用性系统– 5个9(99.999%)常用来描述可用性系统 – 但是可用性系统要求的成本比较高 – 具体设计时要综合用户两方面的要求
分布式 数据库 可靠性
2 分布式数据库系统的故障原因和容错技术2.1 系统失败的原因 系统(System) 是由一组组件构成的一种机制,这些 组件通过响应来自某个环境的具有可识别行为模式的 刺激而相互作用。环境系统刺激
component1
component2 响应
component3
系统规范说明(Specification) 系统提供的对所有可能 的刺激将产生的响应行为必须遵循的说明
分布式 数据库 可靠性
2 分布式数据库系统的故障原因和容错技术2.1 系统失败的原因
故障 – 任何偏离规范
说明的行为 软故障和硬故障 – 软故障包括间歇性(intermittent)和瞬变性 (transient)故障,通过重启动来修复 – 硬故障指永久性故障, 错误设计等 软件和硬件故障
分布式 数据库 可靠性
2 分布式数据库系统的故障原因和容错技术2.1 系统失败的原因
软故障 占90%以上并且该比例稳定– 67年, 美空军指出计算机中电子故障80%是间 歇性的– 67年,IBM 指出 90%故障是间歇性的 – 80年,研究指出软故障明显高于硬故障 – 87年,Gray指出 大部分软件故障是瞬变性故障
分布式 数据库 可靠性
2 分布式数据库系统的故障原因和容错技术2.1 系统失败的原因
审查不同计算机系统中出错的统计数据– IBM/XA 的OS 可靠性报告 57%是硬件, 12% 软件, 14%操作, 7% 环境(斯坦福 线性加速器SLAC)– Tandem计算机 18%硬件 25% 软件 25%维护 17%操作, 14%环境 – AT&T 5ESS数字交换机 17.5%操作 32.3%硬件, 44.3%软件,
软件故障– 通信或DB的原因是产生软件故障的主要原因.
– 代码中的Bug, 曾有报告指出, 1000条指令中, 0.25-10 个BUG
分布式 数据库 可靠性
永久性 故障
永久性 错误
错误的 设计不稳定 或者 临界的 组件 不稳定的 外部环境 操作者 的过失
系间歇性 错误 统
失 瞬变的 错误败
系统失败的原因
分布式 数据库 可靠性
2 分布式数据库系统的故障原因和容错技术2.2 基本容错方法和技术
容错– 设计一种使系统识别出可能会发生的错误的方法。 在系统中建立一种机制,使错误在造成系统故障之 前就会被检测出来,并能被清除或得到补偿。
错误预防– 保证所实现的系统不包含任何错误 – 错误回避:保证系统不会带入错误的技术(详细的 设计方法学和质量控制) – 错误清除:清查那些在使用了错误回避技术路线后 还残留在系统中的错误,并清除它们(需要大量的 测试和证实过程)
分布式 数据库 可靠性
2 分布式数据库系统的故障原因和容错技术2.2 基本容错方法和技术
故障检测– 潜伏的故障:故障发生一段时间后才被检测出 来 – 错误潜伏期:从故障发生到被检测出来的时间 – 平均检测时间(MTTD):平均错误潜伏时间 – 平均修复时间(MTTR):修复一个失败的系统所 需要的期望时间 – 平均故障间隔时间(MTBF):在可以自我修复的 系统中相继的失败之间的期望时间, 由经验或 从可靠性函数计算
分布式 数据库 可靠性
2 分布式数据库系统的故障原因和容错技术2.2 基本容错方法和技术
MTBF
MTTD
MTTR
时间故障 造成 发生 错误 检测到 错误 修复 故障 发生 造成 错误
在这段时间内, 可能发生多起错误
相继发生的事件
分布式 数据库 可靠性
2 分布式数据库系统的故障原因和容错技术2.2 基本容错方法和技术
冗余– 所有容错系统设计中都采用的基本原则是在系统的 组件中提供冗余
模
块化– 系统的每个组件都设计为具有定义很好的输入/输出 接口的模块 – 模块化可以把故障隔离在单一的组件中
系统实现– 故障-停止模块(fail-stop module) – 进程对(Process pairs)
分布式 数据库 可靠性
2 分布式数据库系统的故障原因和容错技术2.2 基本容错方法和技术
故障-停止模块– 不断地对自身进行检测,当检测到一个故障 时,就自动停止。 – 优点是缩短了故障检测的潜伏期。
time
正常
停止
恢复稳定存储 ok
正常
易失存储丢失
分布式 数据库 可靠性
2 分布式数据库系统的故障原因和容错技术2.2 基本容错方法和技术
进程对(Process pairs)– 通过软件模块的双工来实现容错。两个进程,一个是 主进程,一个是备份,它们同时提供同样的服务,主 进程与备份进程都是基于故障-停止模块实现。 – 分类方式(根据主进程和备份进程之间的通信方式) 锁定-步进方式 自动检查点设置方式 状态检查点设置方式 Delta检查点设置方式 持久进程对
上一篇:初中化学创新实验设计四例
下一篇:如何培养职工安全意识