分布式事务管理.ppt

上传人:牧羊曲112 文档编号:6244306 上传时间:2023-10-09 格式:PPT 页数:50 大小:1.06MB
返回 下载 相关 举报
分布式事务管理.ppt_第1页
第1页 / 共50页
分布式事务管理.ppt_第2页
第2页 / 共50页
分布式事务管理.ppt_第3页
第3页 / 共50页
分布式事务管理.ppt_第4页
第4页 / 共50页
分布式事务管理.ppt_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《分布式事务管理.ppt》由会员分享,可在线阅读,更多相关《分布式事务管理.ppt(50页珍藏版)》请在三一办公上搜索。

1、第六章分布式事务管理,事务的概念、特性及模型分布式事务分布式事务管理的实现分布式事务的提交协议,基本概念事务:事务是由若干个为完成某一任务而逻辑相关的操作组成的操作序列,是数据库上的一个执行单位。事务的结构事务的结构可描述为:,提交(commit):将事务所做的操作结果永久化,使数据库状况从事务执行前的状态改变到事务执行后的状态。废弃(abort):把事务所做的操作全部作废,使数据库保持事务执行前的状态。,基本概念,Transaction,is a sequence of database operations organized in a basic unit for keeping dat

2、abase consistent and reliable.A database is in a consistent state if it follows:Entity integrityReferential integrityDomain value constraintsetc.,基本概念,A temporary inconsistent state of a transaction should not be exposed to other transactions.,基本概念,A database should be in a consistent state even if

3、there are a number of concurrent transactions accessing the database.A database is reliable if it is resilient and capable of recovering.A transaction is a sequence of read and write operations on a DB with some special properties(ACID).An SQL statement is a transaction.An embedded SQL statement is

4、a transaction.A program enclosed by“Begin-transaction”and“end”is a transaction.,Termination Conditions of TransactionsA transaction may be terminate by command of-commit,i.e.successfully completed,or-rollback,i.e.aborted,or-other reasonsCommit makes DB operations effect permanent and the result is v

5、isible to other transactions.Rollback undoes all DB operations and restores the DB to the state before the execution of the transaction.,基本概念,基本概念,订票事务内的具体操作:,事务具体操作描述,可得到事务的偏序集T:AT=B,R1,R2,W1,W2,W3,W4,W5,W6,C或描述为:A T=B,O1,O2,O3,O4,O5,O6,O7,O8,C其中:B:事务开始;R:读操作;W:写操作;A:事务中断或事务夭折;C:事务提交或事务完成;O:(读/写)操作

6、。一个事务是一系列对数据库的操作组成的操作集,事务提交意味该事务正常操作完成,否则事务操作失败。,Characterization of Transactions,Read Set(RS)the set of data items that a transaction reads Write Set(WS)the set of data that a transaction writes Base Set(B)-RSWS,Formalization of the Transaction Concept,Note is an ordering relation for database oper

7、ations of.Two operations are in conflict if one of them is a write.,Formalization of the Transaction Concept,For example:A transaction T consisting of operationsRead(x)Read(y)xx+yWrite(x)Commit=R(x),R(y),W(x),C,=(R(x),W(x),(R(y),W(x),(W(x),C),(R(x),C),(R(y),C),Formalization of the Transaction Concep

8、t,A partial order can be represented by a DAG(Directed Acyclic Graph)whose vertices are the operations and edges are ordering.ExampleR(x)W(x)CR(y)Note no order exists between R(x)and R(y)A transaction can be simplified by using its relative order of operations,e.g.the above T can be written as T=R(x

9、),R(y),W(x),C,事务的基本性质事务是对数据库的一个操作序列,更确切地说,事务是保证数据库正确的最小运行单位。应具有以下四个特性:原子性(Atomicity)一致性(Consistency)隔离性(Isolation)耐久性(Durability)原子性体现为:事务所包含的操作要么全部完成,要么什么也没做;如果事务由于故障中断执行,则部分结果必须被反做(UNDO)。也就是说,事务的原子性保证数据库的状态总是从一个一致的状态变化到另一个一致的状态,不会出现不一致的中间状态。由于输入错误、系统过载、死锁等导致的事务废弃,而需要进行的原子性维护处理,称为事务恢复。由于系统崩溃(死机、掉电)

10、而导致事务废弃或提交结果的丢失,而进行的原子性维护处理,称为故障恢复。对提交结果的处理,称为重做(REDO)。,一致性体现为:在一致性数据库上执行事务后,数据库仍需保持为一致性的状态;事务的操作不违反数据库的完整性约束;事务是语义正确性的程序。The property to be guaranteed by concurrency control.Four levels of consistency can be defined on the basis of dirty data concept.Dirty data the data value that have been changed

11、 by a transaction prior to its commitment.,一致性体现为:Consistency degree 31.A transaction T does not overwrite dirty data of other transactions.2.A transaction T does not commit any writes until it completes all writes,i.e.until the end of T.3.T does not read dirty data from other transactions.4.Other t

12、ransactions do not dirty any data read by T before T completes.Degree 2:1st to 3rd of above 4Degree 1:1st to 2nd of above 4Degree 0:1st of above 4,隔离性体现为:保证可串行性,即并发执行的事务的结果与它们单个串行执行的结果相同;没有结束的事务在提交之前不允许将其结果暴露给其它事务,防止级联废弃。如:T1:R1(X),R2(Y),W1(X)T2:R2(X),W2(X)事务T1没提交设执行过程:R1(X),R2(Y),W1(X),R2(X),W2(X)在

13、执行中,若T2引用了没提交的事务T1结果,则当T1提交失败时,事务T1需反做,T2也必须反做,该情况称级联废弃。当事务T1提交后,其结果再提交给其它事务(如T2),就不会出现级联废弃问题。,隔离性实例,隔离性实例,Consistency degree level 3 provides complete isolation.Consistency degree level 2 avoids cascading aborts.,耐久性体现为:当一个事务的结果提交后,系统保证该结果不会因以后的故障而丢失。由于系统故障而导致数据库损坏而进行的恢复活动,称为数据库恢复。人们常把事务的原子性(Atomic

14、ity)、一致性(Consistency)、隔离性(Isolation)和耐久性(Durability)四个特性简称为ACID性。这四条性质起到了保证事务操作的正确性,维护数据库的一致性及完整性的作用。,事务的命令事务开始命令:begin_transaction;说明事务的开始。事务提交命令:commit_transaction;保留事务执行后的结果。事务废弃命令:abort_transaction;事务取消,使数据库保持事务执行前的状态。,事务的模型,事务的声明显式声明:是在程序中用事务命令显示地划分事务。隐式声明:由系统缺省地划分事务。事务的种类(TYPES OF TRANSACTIONS

15、)By applications non-distributed vs.distributedcompensating transactions,if its purpose is to undo the effect of previous transactionsheterogeneous transactions,if the application runs in a heterogeneous DB,事务的种类(TYPES OF TRANSACTIONS)By durationOn-line or short-life transactionsBatch or long-life t

16、ransactionsBy structureTraditional flat structureNestedworkflowsBy organization of read and write actionstwo-stepRestrictedaction model,事务的种类(TYPES OF TRANSACTIONS)平面事务:用begin和end 括起来的自治执行方式。平面事务表示为:begin 程序 commit,嵌套事务:指一个事务的执行包括另一个事务。其中内部事务称为外部事务的子事务,外部事务称为子事务的父事务。嵌套事务表示为:,事务是指用户在数据库上的一次操作过程,是系统的一

17、个具备ACID四个性质的基本管理单位。因此,一个数据库应用是由一个或多个事务完成的。,Example of nested transactionsBegin_transaction ReservationBegin_transaction Airlineend.AirlineBegin_transaction Hotelend.Hotelend.,提交依赖性:子事务提交,必须等待父事务提交。废弃依赖性:父事务废弃,则子事务必须废弃。,ARCHITECTURE REVISITEDExpand the Distributed Execution Monitor(DEM)to include two

18、 modules:a transaction Manager(TM)and a scheduler(SC).TM:coordinate the execution of DB operations on behalf of an application.SC:implement a specific concurrency control algorithm to synchronize accesses to DB.,ARCHITECTURE REVISITED,Note:this model is not unique.,集中式的事务执行,分布式的事务执行,分布式事务1分布式事务定义在分布

19、式数据库系统中,任何一个应用的请求最终将转化成对数据库的存取操作序列,将该操作序列定义为一个或几个事务。分布式事务是指分布式数据库应用中的事务。由于分布式系统的特性,一个分布式事务在执行时将被分解为若干和各场地上的计算机相关的操作序列,称之为子事务。子事务也可定义为:一个分布式事务是在某个场地上操作的集合。分布式事务是典型的嵌套类型的事务。,分布式事务的实现分布式事务是一个应用的操作序列,是用户对数据库存取操作序列的执行的最小单位。一个分布式事务在执行时将被分解为多个场地上的子事务执行。为完成各个场地的子事务,有两种实现模型,即进程模型和服务器模型。进程模型在相应的场地上创建子进程。即全局事务

20、必须为每一子事务在相应的场地上创建一个代理者进程,也称局部进程或子进程。同时,为协调各子事务的操作,全局进程还要启动一个协调者进程,来控制和协调各代理者间的操作。发出分布式事务的场地称为事务的源场地。在源场地上,每个事务有一个根代理(也称协调者进程),负责创建、启动和协调其它进程。为完成事务的操作,在各场地上创建的进程,称为事务的代理进程,简称代理。,子代理完成各场地上的子事务,根代理负责创建、启动和协调其它进程,以完成全局事务的操作。服务器模型每个场地上创建有事务服务器进程,用于执行子事务。事务通过服务请求,申请服务器为其服务。服务器可交替地为多个事务服务。,分布式事务举例例6.2.1 实现

21、两个帐户间的转帐操作的事务。设有一帐户关系ACCOUNTAcc_No,Amount,Acc_No、Amount分别为帐号和金额。该关系用于存放帐户的金额,要求实现:完成从贷方帐号(From_Acc)到借方帐号(To_Acc)的转帐操作,转帐金额为transfer_amount。假设:贷方帐户和借方的帐目分别存在不同场地上。,其全局程序为:,分布式事务管理的目标分布式事务管理的目标就是追求高效、可靠和并发地执行事务。具体可描述为:(1)维护分布式事务的ACID性质;(2)提高系统的性能,包括CPU、内存等的系统资源的使用效率和数据资源的使用效率,减少控制报文传送的次数,加速事务的响应速度,降低系

22、统运行开销;(3)提高系统可靠性和可用性,当系统的一部分或者局部发生故障时,系统仍能正常运转,而不是整个系统瘫痪。,分布式事务管理的实现 参考模型 分布式事务管理参考模型见下图,全局事务管理器,分布事务管理器,局部事务管理器,命令接口(1)根代理与DTM接口begin_transaction:事务开始命令;commit:事务提交命令;abort:事务废弃命令。(2)DTM与LTM接口local_begin:局部事务开始命令;local_commit:局部事务提交命令;local_abort:局部事务废弃命令。local_creat:建立局部进程。,Begin transaction,分布式事务

23、的提交协议基本概念协调者:是在事务的各个代理中指定的一个特殊代理,负责决定所有子事务的提交或废弃。参与者:除协调者之外的其它代理,负责各个事务的提交或废弃。1、基本的两阶段提交协议基本的两阶段提交协议是为了实现分布式事务提交而采用的协议。其基本内容是,把全局事务的提交分为两个阶段:阶段1:决定阶段由协调者向各个参与者发prepare命令,然后等待回答,若所有的参与者返回ready信息,则该事务满足提交条件。如果至少有一个事务返回abort消息,则该事务不能提交。阶段2:执行阶段在事务具备提交条件的情况下,协调者向各个参与者发commit命令,各个参与者执行提交。否则,协调者向各个参与者发出ab

24、ort命令,各个参与者执行废弃,取消对数据库的修改。各参与者返回ack确认信息,通告协调者事务执行结束。,两段提交协议(2PC)的分类 集中式的2PC首先确定一个协调者场地,通常由事务的发起者场地充当,完成事务提交的初始化工作。集中式2PC协议的事务提交过程描述如下:协调者向所有参与者发送“预提交”命令。各参与者收到“预提交”命令后,若准备好提交,则发回“准备提交”应答信息。若所有参与者均返回“准备提交”应答信息,则该事务满足提交条件。如果至少一个参与者返回“没准备好”应答信息,该事务不能提交。若满足事务提交条件,协调者向所有参与者发“提交”命令,参与者执行提交,并返回提交结束“应答”信息。否

25、则,协调者向所有参与者发“废弃”事务命令,参与者执行废弃,并返回废弃结束“应答”信息。图6(a)表示了集中式2PC协议的通讯结构。集中式的2PC协议实现简单,是常采用的一种提交协议。,分布式的2PC事务的所有参与者都是协调者,都可以决定事务的提交和废弃。由事务的始发场地完成提交的初始化工作。分布式2PC协议的事务提交过程描述如下:始发场地向所有参与者广播“预提交”命令。各参与者收到“预提交”命令后,决定是返回“准备提交”应答信息还是“没准备好”应答信息。每一场地的参与者都根据其它参与者的应答做出决定提交或废弃事务。图6(b)表示了分布式的2PC协议的通讯结构。该种协议通讯费用大,实际中很少采用

26、。,分层式的2PC(也称树状协议)协调者所在场地称为树根,参与者构成树的中间结点或叶结点。事务提交过程描述如下:协调者(树根)向其下层结点参与者发送“预提交”命令。各参与者收到“预提交”命令后,若准备好提交,则向上层发“准备提交”应答信息。若返回到树根的信息均是参与者的“准备提交”应答信息,则该事务满足提交条件。否则,不满足事务提交条件。树根根据下层参与者返回的信息决定向下层参与者发“提交/废弃”命令,参与者执行提交或废弃,并返回“应答”信息。图6(c)表示了分层式2PC协议的通讯结构。可见,集中式的2PC协议是分层式2PC协议的一个特例,即无中间结点。,线性的2PC线性的2PC协议中,由事务

27、的始发场地构造一个线性有序的场地表,表中第一个场地为协调者场地,后续依次为第一个参与者场地,第二个参与者场地,直到第n个参与者场地。线性2PC事务提交过程为:事务的始发场地首先进入“预提交”状态,之后向场地表中下一个参与者场地发“预提交”命令,若该场地准备好提交,则向上一场地发“准备提交”应答。同时自己成为当前场地,继续向下一场地发“预提交”命令,依次直到最后一个场地。当最后参与者场地收到“预提交”命令,且也准备好提交时,此时最后参与者场地充当了协调者,自己首先进入提交状态,之后,向前一场地发提交命令。前一场地收到提交命令,完成提交,向下一场地发提交命令和向后续场地发应答信息,直到事务始发场地提交完成,事务提交完成。若场地表中任一场地收到“预提交”命令时,处于没准备好提交状态,则向前一场地发“没准备好”应答,收到“没准备好”应答的场地即可决定废弃事务,并向前一场地发“废弃”命令,直到事务原发场地,事务废弃完成。图6(d)表示了线性2PC协议的通讯结构。尽管线性2PC协议省略了一些中间状态,但由于其提交/废弃是串行的,因此,当子事务较多时,其效率不高。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号