第六章 分布式事务管理.ppt_第1页
第六章 分布式事务管理.ppt_第2页
第六章 分布式事务管理.ppt_第3页
第六章 分布式事务管理.ppt_第4页
第六章 分布式事务管理.ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、ping database consistent and reliable. A database is in a consistent state if it follows: Entity integrity Referential integrity Domain value constraints etc.,基本概念,A temporary inconsistent state of a transaction should not be exposed to other transactions.,基本概念,A database should be in a consistent s

3、tate even if 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

4、 SQL statement is a transaction. A program enclosed by “Begin-transaction” and “end” is a transaction.,Termination Conditions of Transactions A transaction may be terminate by command of -commit, i.e. successfully completed, or -rollback, i.e. aborted, or -other reasons Commit makes DB operations ef

5、fect permanent and the result is visible to other transactions. Rollback undoes all DB operations and restores the DB to the state before the execution of the transaction.,基本概念,基本概念,订票事务内的具体操作 :,事务具体操作描述,可得到事务的偏序集T: A T=B,R1,R2 , W1,W2,W3,W4,W5,W6,C 或描述为: A T=B,O1,O2, O3,O4,O5,O6,O7,O8,C 其中: B:事务开始;

6、 R:读操作; W:写操作; A:事务中断或事务夭折; C:事务提交或事务完成; O:(读/写)操作。 一个事务是一系列对数据库的操作组成的操作集,事务提交意味该事务正常操作完成,否则事务操作失败。,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 Transact

7、ion Concept,Note is an ordering relation for database operations 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 operations Read(x) Read(y) xx+y Write(x) Commit = R(x), R(y), W(x), C,= (R(x),W(x), (R(

8、y),W(x), (W(x),C), (R(x),C), (R(y),C),Formalization of the Transaction Concept,A partial order can be represented by a DAG (Directed Acyclic Graph) whose vertices are the operations and edges are ordering. Example R(x) W(x) C R(y) Note no order exists between R(x) and R(y) A transaction can be simpl

9、ified by using its relative order of operations, e.g. the above T can be written as T=R(x), R(y),W(x),C,事务的基本性质 事务是对数据库的一个操作序列,更确切地说,事务是保证数据库正确的最小运行单位。应具有以下四个特性: 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 耐久性(Durability) 原子性体现为: 事务所包含的操作要么全部完成,要么什么也没做; 如果事务由于故障中断执行,则部分结果必须被反做(UNDO)。也就是说,事务的原子性保证

10、数据库的状态总是从一个一致的状态变化到另一个一致的状态,不会出现不一致的中间状态。 由于输入错误、系统过载、死锁等导致的事务废弃,而需要进行的原子性维护处理,称为事务恢复。 由于系统崩溃(死机、掉电)而导致事务废弃或提交结果的丢失,而进行的原子性维护处理,称为故障恢复。对提交结果的处理,称为重做(REDO)。,一致性体现为: 在一致性数据库上执行事务后,数据库仍需保持为一致性的状态; 事务的操作不违反数据库的完整性约束; 事务是语义正确性的程序。 The property to be guaranteed by concurrency control. Four levels of consi

11、stency can be defined on the basis of dirty data concept. Dirty data the data value that have been changed by a transaction prior to its commitment.,一致性体现为: Consistency degree 3 1. A transaction T does not overwrite dirty data of other transactions. 2.A transaction T does not commit any writes until

12、 it completes all writes, i.e. until the end of T. 3. T does not read dirty data from other transactions. 4. Other transactions do not dirty any data read by T before T completes. Degree 2: 1st to 3rd of above 4 Degree 1: 1st to 2nd of above 4 Degree 0: 1st of above 4,隔离性体现为: 保证可串行性,即并发执行的事务的结果与它们单个

13、串行执行的结果相同; 没有结束的事务在提交之前不允许将其结果暴露给其它事务,防止级联废弃。 如:T1:R1(X), R2(Y), W1(X) T2:R2(X),W2(X) 事务T1没提交 设执行过程:R1(X),R2(Y),W1(X),R2(X),W2(X) 在执行中,若T2引用了没提交的事务T1结果,则当T1提交失败时,事务T1需反做,T2也必须反做,该情况称级联废弃。 当事务T1提交后,其结果再提交给其它事务(如T2),就不会出现级联废弃问题。,隔离性实例,隔离性实例,Consistency degree level 3 provides complete isolation. Consi

14、stency degree level 2 avoids cascading aborts.,耐久性体现为: 当一个事务的结果提交后,系统保证该结果不会因以后的故障而丢失。 由于系统故障而导致数据库损坏而进行的恢复活动,称为数据库恢复。 人们常把事务的原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和耐久性(Durability)四个特性简称为ACID性。 这四条性质起到了保证事务操作的正确性,维护数据库的一致性及完整性的作用。,事务的命令 事务开始命令:begin_transaction;说明事务的开始。 事务提交命令:commit_transac

15、tion;保留事务执行后的结果。 事务废弃命令:abort_transaction;事务取消,使数据库保持事务执行前的状态。,事务的模型,事务的声明 显式声明:是在程序中用事务命令显示地划分事务。 隐式声明:由系统缺省地划分事务。 事务的种类(TYPES OF TRANSACTIONS ) By applications non-distributed vs. distributed compensating transactions, if its purpose is to undo the effect of previous transactions heterogeneous tra

16、nsactions, if the application runs in a heterogeneous DB,事务的种类(TYPES OF TRANSACTIONS) By duration On-line or short-life transactions Batch or long-life transactions By structure Traditional flat structure Nested workflows By organization of read and write actions two-step Restricted action model,事务的

17、种类(TYPES OF TRANSACTIONS) 平面事务:用begin和end 括起来的自治执行方式。 平面事务表示为: begin 程序 commit,嵌套事务:指一个事务的执行包括另一个事务。其中内部事务称为外部事务的子事务,外部事务称为子事务的父事务。 嵌套事务表示为:,事务是指用户在数据库上的一次操作过程,是系统的一个具备ACID四个性质的基本管理单位。因此,一个数据库应用是由一个或多个事务完成的。,Example of nested transactions Begin_transaction Reservation Begin_transaction Airline end.

18、Airline Begin_transaction Hotel end. Hotel end.,提交依赖性:子事务提交,必须等待父事务提交。 废弃依赖性:父事务废弃,则子事务必须废弃。,ARCHITECTURE REVISITED Expand the Distributed Execution Monitor (DEM) to include two modules: a transaction Manager( TM) and a scheduler (SC). TM: coordinate the execution of DB operations on behalf of an ap

19、plication. SC: implement a specific concurrency control algorithm to synchronize accesses to DB.,ARCHITECTURE REVISITED,Note: this model is not unique.,集中式的事务执行,分布式的事务执行,分布式事务 1分布式事务定义 在分布式数据库系统中,任何一个应用的请求最终将转化成对数据库的存取操作序列,将该操作序列定义为一个或几个事务。 分布式事务是指分布式数据库应用中的事务。由于分布式系统的特性,一个分布式事务在执行时将被分解为若干和各场地上的计算机相

20、关的操作序列,称之为子事务。子事务也可定义为:一个分布式事务是在某个场地上操作的集合。分布式事务是典型的嵌套类型的事务。,分布式事务的实现 分布式事务是一个应用的操作序列,是用户对数据库存取操作序列的执行的最小单位。一个分布式事务在执行时将被分解为多个场地上的子事务执行。为完成各个场地的子事务,有两种实现模型,即进程模型和服务器模型。 进程模型 在相应的场地上创建子进程。即全局事务必须为每一子事务在相应的场地上创建一个代理者进程,也称局部进程或子进程。同时,为协调各子事务的操作,全局进程还要启动一个协调者进程,来控制和协调各代理者间的操作。发出分布式事务的场地称为事务的源场地。在源场地上,每个

21、事务有一个根代理(也称协调者进程),负责创建、启动和协调其它进程。为完成事务的操作,在各场地上创建的进程,称为事务的代理进程,简称代理。,子代理完成各场地上的子事务,根代理负责创建、启动和协调其它进程,以完成全局事务的操作。 服务器模型 每个场地上创建有事务服务器进程,用于执行子事务。事务通过服务请求,申请服务器为其服务。服务器可交替地为多个事务服务。,分布式事务举例 例6.2.1 实现两个帐户间的转帐操作的事务。 设有一帐户关系ACCOUNTAcc_No,Amount,Acc_No、Amount分别为帐号和金额。该关系用于存放帐户的金额,要求实现:完成从贷方帐号(From_Acc)到借方帐号

22、(To_Acc)的转帐操作,转帐金额为transfer_amount 。 假设:贷方帐户和借方的帐目分别存在不同场地上。,其全局程序为:,分布式事务管理的目标 分布式事务管理的目标就是追求高效、可靠和并发地执行事务。具体可描述为: (1)维护分布式事务的ACID性质; (2)提高系统的性能,包括CPU、内存等的系统资源的使用效率和数据资源的使用效率,减少控制报文传送的次数,加速事务的响应速度,降低系统运行开销; (3)提高系统可靠性和可用性,当系统的一部分或者局部发生故障时,系统仍能正常运转,而不是整个系统瘫痪。,分布式事务管理的实现 参考模型 分布式事务管理参考模型见下图,全局事务管理器,分

23、布事务管理器,局部事务管理器,命令接口 (1)根代理与DTM接口 begin_transaction:事务开始命令; commit:事务提交命令; abort:事务废弃命令。 (2)DTM与LTM接口 local_begin:局部事务开始命令; local_commit:局部事务提交命令; local_abort:局部事务废弃命令。 local_creat:建立局部进程。,Begin transaction,分布式事务的提交协议 基本概念 协调者:是在事务的各个代理中指定的一个特殊代理,负责决定所有子事务的提交或废弃。 参与者:除协调者之外的其它代理,负责各个事务的提交或废弃。 1、 基本的两

24、阶段提交协议 基本的两阶段提交协议是为了实现分布式事务提交而采用的协议。其基本内容是,把全局事务的提交分为两个阶段: 阶段1:决定阶段 由协调者向各个参与者发prepare命令,然后等待回答,若所有的参与者返回ready信息,则该事务满足提交条件。如果至少有一个事务返回abort消息,则该事务不能提交。 阶段2:执行阶段 在事务具备提交条件的情况下,协调者向各个参与者发commit命令,各个参与者执行提交。否则,协调者向各个参与者发出abort命令,各个参与者执行废弃,取消对数据库的修改。各参与者返回ack确认信息,通告协调者事务执行结束。,两段提交协议(2PC)的分类 集中式的2PC 首先确

25、定一个协调者场地,通常由事务的发起者场地充当,完成事务提交的初始化工作。集中式2PC协议的事务提交过程描述如下: 协调者向所有参与者发送“预提交”命令。各参与者收到“预提交”命令后,若准备好提交,则发回“准备提交”应答信息。若所有参与者均返回“准备提交”应答信息,则该事务满足提交条件。如果至少一个参与者返回“没准备好”应答信息,该事务不能提交。若满足事务提交条件,协调者向所有参与者发“提交”命令,参与者执行提交,并返回提交结束“应答”信息。否则,协调者向所有参与者发“废弃”事务命令,参与者执行废弃,并返回废弃结束“应答”信息。图6 (a)表示了集中式2PC协议的通讯结构。集中式的2PC协议实现简单,是常采用的一种提交协议。,分布式的2PC 事务的所有参与者都是协调者,都可以决定事务的提交和废弃。由事务的始发场地完成提交的初始化工作。分布式2PC协议的事务提交过程描述如下:始发场地向所有参与者广播“预提交”命令。各参与者收到“预提交”命令后,决定是返回“准备提交”应答信息还是“没准备好”应答信息。每一场地的参与者都根

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论