1、COMPANY LOGO第九章 分布式事务处理袁帅 何杰涛Company Logo第九章 分布式事务处理 9.1 概述 9.2 简单分布式事务和嵌套事务 9.3 原子提交协议 9.4 分布式事务的并发控制 9.5 分布式事务的死锁 9.6 带复制数据的事务 9.7 小结Company Logo9.1 概述 事务用于访问和修改各种数据项的一个程序单位。数据库管理系统中的事务是访问数据库的一个程序的执行。分布式系统中,事务是指一组客户请求的执行。从客户角度看,事务是组成一个步骤的一组操作,它将服务器的数据从一个一致性状态转换到另一个一致性状态。Company Logo9.1 概述 分布式事务活动涉
2、及多个服务器的事务。Company Logo9.2 简单分布式事务和嵌套事务 简单分布式事务:又称为平面分布式事务,一个客户可请求多台服务器,但每接收客户请求的服务器并不调用其他服务器的操作。XYZTCompany Logo9.2 简单分布式事务和嵌套事务 嵌套事务:一个服务器的一个操作可能触发另一个服务器的某个操作,通常后者可能又进一步请求操作,依次类推。同 次的子事务可 并发执行。Company Logo9.2 简单分布式事务和嵌套事务TT1T2T11T12T21T22XYMNPCompany Logo9.2 简单分布式事务和嵌套事务 事务的第一个服务器成为事务的协调者, 提交事务。 管理
3、分布式事务访问的 的每个服务器 是 事务的 者,每个事务 者 分布式事务的可 复 。 事务执行 程中,协调者 中 者的 用,每一个者 一个 协调者的 用。 join(Trans, Server-id of coordinator)事务 TID分为 事务的服务器 IP 和 服务器是一的数分。Company Logo9.2 简单分布式事务和嵌套事务 行事 涉及服 器 务 务 Branch X、Y、Z上的currency1户A、B、C、D,客 事户 务T从A转currency1$4到C,从B转currency1$3到D。 T=openTransactionA.withdraw(4);C.deposit(4);B.withdraw(3);D.deposit(3);closeTCompany Logo9.2 简单分布式事务和嵌套事务TABCDA.withdraw(4);B.withdraw(3);C.deposit(4);D.deposit(3);BranchXBranchYBranchZ协调者joinjoinjoinopenTransactioncloseTransactionb.withdraw(T,3)协调者 其中某一服务器,“BranchX。