《分布式事务管理》PPT课件.ppt

上传人:sh****n 文档编号:6757383 上传时间:2020-03-03 格式:PPT 页数:50 大小:1.27MB
返回 下载 相关 举报
《分布式事务管理》PPT课件.ppt_第1页
第1页 / 共50页
《分布式事务管理》PPT课件.ppt_第2页
第2页 / 共50页
《分布式事务管理》PPT课件.ppt_第3页
第3页 / 共50页
点击查看更多>>
资源描述
第六章分布式事务管理 事务的概念 特性及模型分布式事务分布式事务管理的实现分布式事务的提交协议 基本概念事务 事务是由若干个为完成某一任务而逻辑相关的操作组成的操作序列 是数据库上的一个执行单位 事务的结构事务的结构可描述为 提交 commit 将事务所做的操作结果永久化 使数据库状况从事务执行前的状态改变到事务执行后的状态 废弃 abort 把事务所做的操作全部作废 使数据库保持事务执行前的状态 基本概念 Transaction isasequenceofdatabaseoperationsorganizedinabasicunitforkeepingdatabaseconsistentandreliable Adatabaseisinaconsistentstateifitfollows EntityintegrityReferentialintegrityDomainvalueconstraintsetc 基本概念 Atemporaryinconsistentstateofatransactionshouldnotbeexposedtoothertransactions 基本概念 Adatabaseshouldbeinaconsistentstateevenifthereareanumberofconcurrenttransactionsaccessingthedatabase Adatabaseisreliableifitisresilientandcapableofrecovering AtransactionisasequenceofreadandwriteoperationsonaDBwithsomespecialproperties ACID AnSQLstatementisatransaction AnembeddedSQLstatementisatransaction Aprogramenclosedby Begin transaction and end isatransaction TerminationConditionsofTransactionsAtransactionmaybeterminatebycommandof commit i e successfullycompleted or rollback i e aborted or otherreasonsCommitmakesDBoperationseffectpermanentandtheresultisvisibletoothertransactions RollbackundoesallDBoperationsandrestorestheDBtothestatebeforetheexecutionofthetransaction 基本概念 基本概念 订票事务内的具体操作 事务具体操作描述 可得到事务的偏序集T AT B R1 R2 W1 W2 W3 W4 W5 W6 C 或描述为 AT B O1 O2 O3 O4 O5 O6 O7 O8 C 其中 B 事务开始 R 读操作 W 写操作 A 事务中断或事务夭折 C 事务提交或事务完成 O 读 写 操作 一个事务是一系列对数据库的操作组成的操作集 事务提交意味该事务正常操作完成 否则事务操作失败 CharacterizationofTransactions ReadSet RS thesetofdataitemsthatatransactionreadsWriteSet WS thesetofdatathatatransactionwritesBaseSet B RS WS FormalizationoftheTransactionConcept Noteisanorderingrelationfordatabaseoperationsof Twooperationsareinconflictifoneofthemisawrite FormalizationoftheTransactionConcept Forexample AtransactionTconsistingofoperationsRead x Read y x x 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 FormalizationoftheTransactionConcept ApartialordercanberepresentedbyaDAG DirectedAcyclicGraph whoseverticesaretheoperationsandedgesareordering ExampleR x W x CR y NotenoorderexistsbetweenR x andR y Atransactioncanbesimplifiedbyusingitsrelativeorderofoperations e g theaboveTcanbewrittenasT R x R y W x C 事务的基本性质事务是对数据库的一个操作序列 更确切地说 事务是保证数据库正确的最小运行单位 应具有以下四个特性 原子性 Atomicity 一致性 Consistency 隔离性 Isolation 耐久性 Durability 原子性体现为 事务所包含的操作要么全部完成 要么什么也没做 如果事务由于故障中断执行 则部分结果必须被反做 UNDO 也就是说 事务的原子性保证数据库的状态总是从一个一致的状态变化到另一个一致的状态 不会出现不一致的中间状态 由于输入错误 系统过载 死锁等导致的事务废弃 而需要进行的原子性维护处理 称为事务恢复 由于系统崩溃 死机 掉电 而导致事务废弃或提交结果的丢失 而进行的原子性维护处理 称为故障恢复 对提交结果的处理 称为重做 REDO 一致性体现为 在一致性数据库上执行事务后 数据库仍需保持为一致性的状态 事务的操作不违反数据库的完整性约束 事务是语义正确性的程序 Thepropertytobeguaranteedbyconcurrencycontrol Fourlevelsofconsistencycanbedefinedonthebasisofdirtydataconcept Dirtydata thedatavaluethathavebeenchangedbyatransactionpriortoitscommitment 一致性体现为 Consistencydegree31 AtransactionTdoesnotoverwritedirtydataofothertransactions 2 AtransactionTdoesnotcommitanywritesuntilitcompletesallwrites i e untiltheendofT 3 Tdoesnotreaddirtydatafromothertransactions 4 OthertransactionsdonotdirtyanydatareadbyTbeforeTcompletes Degree2 1stto3rdofabove4Degree1 1stto2ndofabove4Degree0 1stofabove4 隔离性体现为 保证可串行性 即并发执行的事务的结果与它们单个串行执行的结果相同 没有结束的事务在提交之前不允许将其结果暴露给其它事务 防止级联废弃 如 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 就不会出现级联废弃问题 隔离性实例 隔离性实例 Consistencydegreelevel3providescompleteisolation Consistencydegreelevel2avoidscascadingaborts 耐久性体现为 当一个事务的结果提交后 系统保证该结果不会因以后的故障而丢失 由于系统故障而导致数据库损坏而进行的恢复活动 称为数据库恢复 人们常把事务的原子性 Atomicity 一致性 Consistency 隔离性 Isolation 和耐久性 Durability 四个特性简称为ACID性 这四条性质起到了保证事务操作的正确性 维护数据库的一致性及完整性的作用 事务的命令事务开始命令 begin transaction 说明事务的开始 事务提交命令 commit transaction 保留事务执行后的结果 事务废弃命令 abort transaction 事务取消 使数据库保持事务执行前的状态 事务的模型 事务的声明显式声明 是在程序中用事务命令显示地划分事务 隐式声明 由系统缺省地划分事务 事务的种类 TYPESOFTRANSACTIONS Byapplicationsnon distributedvs distributedcompensatingtransactions ifitspurposeistoundotheeffectofprevioustransactionsheterogeneoustransactions iftheapplicationrunsinaheterogeneousDB 事务的种类 TYPESOFTRANSACTIONS BydurationOn lineorshort lifetransactionsBatchorlong lifetransactionsBystructureTraditionalflatstructureNestedworkflowsByorganizationofreadandwriteactionstwo stepRestrictedactionmodel 事务的种类 TYPESOFTRANSACTIONS 平面事务 用begin和end括起来的自治执行方式 平面事务表示为 begin 程序 commit 嵌套事务 指一个事务的执行包括另一个事务 其中内部事务称为外部事务的子事务 外部事务称为子事务的父事务 嵌套事务表示为 事务是指用户在数据库上的一次操作过程 是系统的一个具备ACID四个性质的基本管理单位 因此 一个数据库应用是由一个或多个事务完成的 ExampleofnestedtransactionsBegin transactionReservationBegin transactionAirline end Airline Begin transactionHotel end Hotel end 提交依赖性 子事务提交 必须等待父事务提交 废弃依赖性 父事务废弃 则子事务必须废弃 ARCHITECTUREREVISITEDExpandtheDistributedExecutionMonitor DEM toincludetwomodules atransactionManager TM andascheduler SC TM coordinatetheexecutionofDBoperationsonbehalfofanapplication SC implementaspecificconcurrencycontrolalgorithmtosynchronizeaccessestoDB ARCHITECTUREREVISITED Note thismodelisnotunique 集中式的事务执行 分布式的事务执行 分布式事务1分布式事务定义在分布式数据库系统中 任何一个应用的请求最终将转化成对数据库的存取操作序列 将该操作序列定义为一个或几个事务 分布式事务是指分布式数据库应用中的事务 由于分布式系统的特性 一个分布式事务在执行时将被分解为若干和各场地上的计算机相关的操作序列 称之为子事务 子事务也可定义为 一个分布式事务是在某个场地上操作的集合 分布式事务是典型的嵌套类型的事务 分布式事务的实现分布式事务是一个应用的操作序列 是用户对数据库存取操作序列的执行的最小单位 一个分布式事务在执行时将被分解为多个场地上的子事务执行 为完成各个场地的子事务 有两种实现模型 即进程模型和服务器模型 进程模型在相应的场地上创建子进程 即全局事务必须为每一子事务在相应的场地上创建一个代理者进程 也称局部进程或子进程 同时 为协调各子事务的操作 全局进程还要启动一个协调者进程 来控制和协调各代理者间的操作 发出分布式事务的场地称为事务的源场地 在源场地上 每个事务有一个根代理 也称协调者进程 负责创建 启动和协调其它进程 为完成事务的操作 在各场地上创建的进程 称为事务的代理进程 简称代理 子代理完成各场地上的子事务 根代理负责创建 启动和协调其它进程 以完成全局事务的操作 服务器模型每个场地上创建有事务服务器进程 用于执行子事务 事务通过服务请求 申请服务器为其服务 服务器可交替地为多个事务服务 分布式事务举例例6 2 1实现两个帐户间的转帐操作的事务 设有一帐户关系ACCOUNT Acc No Amount Acc No Amount分别为帐号和金额 该关系用于存放帐户的金额 要求实现 完成从贷方帐号 From Acc 到借方帐号 To Acc 的转帐操作 转帐金额为transfer amount 假设 贷方帐户和借方的帐目分别存在不同场地上 其全局程序为 分布式事务管理的目标分布式事务管理的目标就是追求高效 可靠和并发地执行事务 具体可描述为 1 维护分布式事务的ACID性质 2 提高系统的性能 包括CPU 内存等的系统资源的使用效率和数据资源的使用效率 减少控制报文传送的次数 加速事务的响应速度 降低系统运行开销 3 提高系统可靠性和可用性 当系统的一部分或者局部发生故障时 系统仍能正常运转 而不是整个系统瘫痪 分布式事务管理的实现参考模型分布式事务管理参考模型见下图 全局事务管理器 分布事务管理器 局部事务管理器 命令接口 1 根代理与DTM接口 begin transaction 事务开始命令 commit 事务提交命令 abort 事务废弃命令 2 DTM与LTM接口 local begin 局部事务开始命令 local commit 局部事务提交命令 local abort 局部事务废弃命令 local creat 建立局部进程 Begintransaction 分布式事务的提交协议基本概念协调者 是在事务的各个代理中指定的一个特殊代理 负责决定所有子事务的提交或废弃 参与者 除协调者之外的其它代理 负责各个事务的提交或废弃 1 基本的两阶段提交协议基本的两阶段提交协议是为了实现分布式事务提交而采用的协议 其基本内容是 把全局事务的提交分为两个阶段 阶段1 决定阶段由协调者向各个参与者发prepare命令 然后等待回答 若所有的参与者返回ready信息 则该事务满足提交条件 如果至少有一个事务返回abort消息 则该事务不能提交 阶段2 执行阶段在事务具备提交条件的情况下 协调者向各个参与者发commit命令 各个参与者执行提交 否则 协调者向各个参与者发出abort命令 各个参与者执行废弃 取消对数据库的修改 各参与者返回ack确认信息 通告协调者事务执行结束 两段提交协议 2PC 的分类集中式的2PC首先确定一个协调者场地 通常由事务的发起者场地充当 完成事务提交的初始化工作 集中式2PC协议的事务提交过程描述如下 协调者向所有参与者发送 预提交 命令 各参与者收到 预提交 命令后 若准备好提交 则发回 准备提交 应答信息 若所有参与者均返回 准备提交 应答信息 则该事务满足提交条件 如果至少一个参与者返回 没准备好 应答信息 该事务不能提交 若满足事务提交条件 协调者向所有参与者发 提交 命令 参与者执行提交 并返回提交结束 应答 信息 否则 协调者向所有参与者发 废弃 事务命令 参与者执行废弃 并返回废弃结束 应答 信息 图6 a 表示了集中式2PC协议的通讯结构 集中式的2PC协议实现简单 是常采用的一种提交协议 分布式的2PC事务的所有参与者都是协调者 都可以决定事务的提交和废弃 由事务的始发场地完成提交的初始化工作 分布式2PC协议的事务提交过程描述如下 始发场地向所有参与者广播 预提交 命令 各参与者收到 预提交 命令后 决定是返回 准备提交 应答信息还是 没准备好 应答信息 每一场地的参与者都根据其它参与者的应答做出决定提交或废弃事务 图6 b 表示了分布式的2PC协议的通讯结构 该种协议通讯费用大 实际中很少采用 分层式的2PC 也称树状协议 协调者所在场地称为树根 参与者构成树的中间结点或叶结点 事务提交过程描述如下 协调者 树根 向其下层结点参与者发送 预提交 命令 各参与者收到 预提交 命令后 若准备好提交 则向上层发 准备提交 应答信息 若返回到树根的信息均是参与者的 准备提交 应答信息 则该事务满足提交条件 否则 不满足事务提交条件 树根根据下层参与者返回的信息决定向下层参与者发 提交 废弃 命令 参与者执行提交或废弃 并返回 应答 信息 图6 c 表示了分层式2PC协议的通讯结构 可见 集中式的2PC协议是分层式2PC协议的一个特例 即无中间结点 线性的2PC线性的2PC协议中 由事务的始发场地构造一个线性有序的场地表 表中第一个场地为协调者场地 后续依次为第一个参与者场地 第二个参与者场地 直到第n个参与者场地 线性2PC事务提交过程为 事务的始发场地首先进入 预提交 状态 之后向场地表中下一个参与者场地发 预提交 命令 若该场地准备好提交 则向上一场地发 准备提交 应答 同时自己成为当前场地 继续向下一场地发 预提交 命令 依次直到最后一个场地 当最后参与者场地收到 预提交 命令 且也准备好提交时 此时最后参与者场地充当了协调者 自己首先进入提交状态 之后 向前一场地发提交命令 前一场地收到提交命令 完成提交 向下一场地发提交命令和向后续场地发应答信息 直到事务始发场地提交完成 事务提交完成 若场地表中任一场地收到 预提交 命令时 处于没准备好提交状态 则向前一场地发 没准备好 应答 收到 没准备好 应答的场地即可决定废弃事务 并向前一场地发 废弃 命令 直到事务原发场地 事务废弃完成 图6 d 表示了线性2PC协议的通讯结构 尽管线性2PC协议省略了一些中间状态 但由于其提交 废弃是串行的 因此 当子事务较多时 其效率不高
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!