第10 章 分布式事务的并发控制 主要内容:简单分布事务与嵌套事务、两段提交协议、并发控制、死锁监测、带复制的事务处理 学时:45′*6 重点:两段提交协议、带复制的事务处理 难点:带复制的事务处理 分布式事务:计算(客户事务)涉及多个服务器的事务 嵌套事务:间接涉及多个服务器的事务 客户事务Server 1Server 2Server h… … 10-1 简单分布事务与嵌套事务 简单分布式事务——一个客户事务请求多个服务器服务,但每个服务器不再因此调用其他的服务器进行操作
嵌套事务——一个客户事务请求多个服务器服务,这些服务器中至少有一个需要调用其他的服务器进行操作才能完成相应任务
显然,当需要多个服务器为一个客户服务时,需要有一个协调者
一般来说,第一个接受任务的事务为协调者、其他为参与者
我们需要一个参与者列表来实现对参与者的管理
1 客户事务 Server 1Server 2Server h… … Server 21 Server h2 Server h1 Server 21 ① 需要一个分布式事务标识T ID——全局唯一号 创建者服务器标识 该服务器上的唯一号 ② 协调者:中止、提交、增加参与者服务器,管理参与者列表 ③ 参与者:记录协调者标识
10-2 原子提交协议 一、 一阶段提交协议 客户的“提交”/“中止”请求不是直接发给参与者,而是发给协调者,再由协调者发给参与者
协调者向事务所有的参与者发出提交或者中止请求,并不断重复该请求,直到所有参与者报告它们执行了该请求
问题:如果遇到某一问题,使得某一参与者无法完成提交,本协议就无法实现
向所有参与者发“提交”/“中止”请求NoYes向未完成者再发请求获得所有参与者的肯定回答
2二、 两阶段提交协议 NoYes向所有参与者发“提交” /“中止”询问CanCommit
向所有参与者发立即