分布式数据库管理系统:原理、设计与优化
1. 两阶段提交与数据库恢复
在分布式数据库中,两阶段提交协议至关重要。若有一个或多个下属节点未提交事务,协调器会发送 ABORT 消息,强制它们撤销所有更改。两阶段提交的目标是确保每个节点都提交其负责的事务部分,否则事务将被中止。若某个节点提交失败,用于恢复数据库的必要信息会记录在事务日志中,可通过 DO - UNDO - REDO 协议恢复数据库(要记得日志信息是使用预写协议更新的)。
2. 性能与故障透明性
2.1 数据库的可用性与性能要求
数据库的一个重要功能是使数据可用。基于 Web 的分布式数据系统要求高可用性,即数据不仅要可访问,请求还需及时处理。例如,谷歌搜索的平均响应时间不到一秒。
2.2 性能透明与故障透明
性能透明性让分布式数据库管理系统(DDBMS)表现得如同集中式数据库,即数据分布不应导致性能下降。故障透明性确保在节点或网络故障时系统仍能继续运行。这两个问题虽相互独立,但又相互关联,因为故障节点或拥塞的网络路径可能导致性能问题。
2.3 查询优化的目标与成本因素
查询优化的目标是最小化请求执行的总成本。与请求相关的成本取决于以下因素:
- 从多个远程站点访问数据的访问时间(I/O)成本。
- 分布式数据库系统中节点间数据传输的通信成本。
- 管理分布式事务处理开销的 CPU 时间成本。
不同的查询优化算法使用不同的参数,并为各参数赋予不同的权重。例如,有些算法最小化总时间,有些最小化通信时间,还有些不考虑 CPU 时间,认为其成本相对其他成本微不足道。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



