6章_分布式数据库中的可靠性_

发布时间: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检查点设置方式 持久进程对

6章_分布式数据库中的可靠性_.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219