《分布式数据库》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn2020/2/4厦门大学计算机科学系2011年11月林子雨厦门大学计算机科学系E-mail:ziyulin@xmu.edu.cn《分布式数据库技术》专题四分布式数据库系统管理机制厦门大学计算机科学系研究生课程《分布式数据库》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn2020/2/4专题四分布式数据库系统管理机制一、分布式事务管理二、分布式并发控制三、分布式恢复《分布式数据库》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn2020/2/4第5章分布式事务管理5.1分布式事务概念与模型5.2分布式事务的原子性5.3分布式事务可串行化理论《分布式数据库》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn2020/2/45.1分布式事务概念与模型5.1.1集中式事务概念5.1.2分布式事务模型5.1.3分布式事务特性5.1.4分布式事务管理目标《分布式数据库》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn2020/2/45.1.1集中式事务概念1、事务事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。2、集中式事务模型事务由标识符、头部、数据库的操作、结束处理组成。其中Commit表示提交,Abort(或Rollback)表示事务夭折回滚。Ti:BeginTransaction..DBoperation.CommitorAbortopertion《分布式数据库》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn2020/2/4(回顾)数据库研究界三大功勋人物埃德加·科德EdgarFrankCodd关系数据库之父1981年图灵奖获得者詹姆斯·格雷JamesGray1998年图灵奖获得者数据库事务处理专家查尔斯·巴赫曼CharlesW.Bachman网状数据库之父1973年图灵奖获得者《分布式数据库》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn2020/2/45.1.1集中式事务概念3、集中式事务特性(事务四性:ACID或ASID)原子性(Atomicity)可串行性(Serializability)(一致性Consistency)隔离性(Isolation)持久性(Durability)《分布式数据库》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn2020/2/45.1.2分布式事务模型5.1.2.1分布式事务概念5.1.2.2分布式事务过程5.1.2.3分布式事务进程结构5.1.2.4分布式事务实例《分布式数据库》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn2020/2/45.1.2.1分布式事务概念在分布式数据库系统中,任何一个应用的请求最终将转成对数据库的存取操作序列从外部特征看,分布式事务与前面讲的集中式事务一样,它也是一个或一段应用的操作序列,只是它的执行方式和集中式事务的执行方式不同而已定义1:分布式事务是一个应用的操作序列,是用户对数据库存取操作序列的执行的最小单元。分布式事务也具有事务的头部操作序列和事务的尾部从其外表上看,和集中式事务具有相同的事务模型,它也使数据库从一个一致的状态改变到另一个一致的状态《分布式数据库》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn2020/2/45.1.2.1分布式事务概念定义2:分布式事务对分布式数据库的存取,经转换、分解、优化后,产生一个涉及到用通讯原语联系的、针对多个局部数据的存取操作序列,称为分布执行计划(DEP)。这个分布执行计划可以分解为“涉及相应场地上的局部数据库的操作序列”,即各场地上的子DEP组成。通常称分布式事务为全局事务,而涉及各相应场地的子DEP称之为子事务。定义3:设事务T:{O1,O2,…,Om},则全局事务GT可表示为:OOOm11211,,OOOnmnn,,21DEP可以分解为:{DEP1(),……,DEPn()}其中:1,…,n为场地号,m为操作种类,DEPi(i=1,…,n)为涉及场地i的操作序列组成的子DEP,即全局事务的第i个子事务。DEP{}《分布式数据库》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn2020/2/45.1.2.2分布式事务过程分布式事务过程和集中式事务过程的相似性和集中式事务一样,分布式事务具有ACID特性,并且更带有分布执行时的特性,即全局事务在并发执行时要求可串行性、原子性、持久性、隔离性。而全局事务的子事务在调度执行时也要求可串行性、可恢复性分布式事务要保证全局和局部数据库一致性全局事务的调度保证事务的正确执行,包括涉及各物理场地的局部调度,保证局部数据库的一致,同时也包括通过通讯协议对子事务的执行进行协调,保证全局数据库的一致性分布式事务的协调者进程和代理者进程为了完成各场地的子事务的处理功能,全局事务必须为每一子事务在相应的场地上创建一个代理者进程,每一个代理者都是一个局部进程。同时,为了协调各子事务的操作,全局事务还要启动一个协调者进程,来控制和协调各代理者间的操作,进行代理者间的通讯《分布式数据库》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn2020/2/45.1.2.2分布式事务过程从分布式系统的概念来分析,分布式事务的过程如下:分布式事务在执行时将被分解为若干个和各场地上计算机相关的操作序列,即子事务为了保证事务的正确调度执行,分布式事务必须为每个子事务在相应场地上的计算机上创建一个代理进程执行该子事务,称局部进程。只有当各子事务均正常结束后,分布式事务才可以提交在子事务的调度执行中,必须有一个协调者进程去协调各子事务的执行。一般来说,这样的协调进程由分布式事务的始发场地事务,即根事务承担在分布式事务中,由于各子事务分布在系统中的多个场地的计算机上执行,因此子事务之间存在大量的数据及控制信息需要传输。这些传输由系统中提供的通讯原语完成,同时子事务间的协调亦由控制原语完成综上所述,分布式事务的操作包括:有关数据的操作(即子事务操作)、通讯原语和控制原语。《分布式数据库》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn2020/2/45.1.2.3分布式事务进程结构一般有多种方法来构造协调进程的结构,这里我们先假设如下所述的进程结构:(1)存在一个协调者进程,这个进程一般由事务的始发场地启动,当用户提出一个用户请求时,就在请求的始发场地启动该进程。(2)协调者进程负责控制事务的执行,协调代理者之间的操作,发出事务的开始、提交或夭折等原语。(3)只有协调者才可以请求创建新的代理者。《分布式数据库》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn2020/2/45.1.2.4分布式事务实例例5.1:本例给出了一个应用程序员编写的事务,该事务执行两个帐户间的转帐操作,其操作的对象是全局关系ACCOUNT(AccNo,Amount)。该应用首先读取转帐金额($Amount)及贷方帐号和借方帐号($FromAce和$ToAce),然后启动事务,进行事务的处理操作。在事务的运行过程中,若贷方金额小于转帐金额,则中止事务;否则,更新借贷双方的金额,提交事务。《分布式数据库》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn2020/2/45.1.2.4分布式事务实例FundTransfer:Read(Temninal,$Amount,$FormAcc,$ToAcc);beginTransaction;SelectAmountinto$FormAmountFromACCOUNTWhereACCNo=$FromACCIf$FromAmount-$Amount0thenAbortelsebeginUpdateACCOUNTSetAmount=Amount-$AmountWhereACCNo=$FromACCUpdateACCOUNTSetAmount=Amount+$AmountWhereACCNo=$TOACC;CommitEnd全局级资金转移事务集中式事务《分布式数据库》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn2020/2/45.1.2.4分布式事务实例ROOT:read(terminal,$Amount,$FromACC,$FromACC,$TOACC);beginTransaction;SelectAmountinto$From-AmountFromACCOUNTWhereAccNO=$From-Acc;if$FromAmount-$Amount<0thenabortelsebeginUpdateACCOUNTSetAmount=Amount-$AmountWhereAccNo=$FromAcc;CreateAGENT1(创建代理者进程)SendtoAGENT1($Amount,$To_Acc);CommitEndAGENT1:ReceiveFromROOT($Amount,$ToACC);UpdateACCOUNTSetAmount=Amount+$AmountWhereAccNo=$ToAcc;全局事务协调者进程代理者进程分布式事务《分布式数据库》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn2020/2/45.1.3分布式事务特性与集中式数据库一样具有ACID性,此外,还有分布式数据库自己的特性:•执行特性:必须创建一个控制进程,称协调进程,以协调各子事务的执行•操作特性:数据的存取操作序列之外,还必须加入大量的通讯原语,即事务组成复杂,执行方式也复杂•控制报文:增加了控制报文,以对各子事务的操作进行协调《分布式数据库》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn2020/2/45.1.4分布式事务管理目标•宏观目标:追求高效、可靠、并发地执行事务–这三个目标是相互矛盾的–影响执行效率的因素:•CPU和内存的利用率•控制报文的数量及长度•响应时间•可用性•具体目标:维护分布事务的原子性、可串行性及隔离性、持久性,尽量减少CPU及内存的开销,减少控制报文传送的次数,加速事务的响应速度,获得最大的系统可用性《分布式数据库》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn2020/2/45.2分布式事务的原子性5.2.1关于原子性5.2.2局部场地事务保证原子性的管理机制5.2.3分布式事务保证分布原子性的管理机制《分布式数据库》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn2020/2/45.2.1关于原子性原子性:一个事务的操作要么全部执行,要么全部不执行。事务的原子性保证数据库的状态总是从一个一致的状态变化到另一个一致的状态,而不会出现不一致的中间状态为了维护分布式事务的原子性,要求分布式事务管理程序具有实现全局原语BeginTransaction、Commit/Abort的能力全局原语的执行依赖于在各场地上执行的一系列的相应操作。只有当各局部场地上的操作正确执行后,全局事务才可以提交,当发生故障要夭折全局事务时,则所有的局部场地上的操作都应失效为了完成全局事务的处理,局部场地应有实现局部事务的局部事务管理程序(LTM),因此可以利用局部场地提供的事务管理机制实现分布式事务的原子性《分布式数据库》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn2020/2/45.2.2局部场地事务保证原子性的管理机制(1)局部场地事务管理机制局部场地提供的事务管理相当于集中事务管理,而集中式事务管理保证事务原子性的方法是事务恢复机制。(2)集中式事务恢复机制事务恢复机制的目的在于,系统发生故障时,保证数据库处于一种正确的状态。《分布式数据库》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn2020/2/45.2.3分布