第六章-分布式事务管理.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第六章分布式事务管理•事务的概念、特性及模型•分布式事务•分布式事务管理的实现•分布式事务的提交协议基本概念事务:事务是由若干个为完成某一任务而逻辑相关的操作组成的操作序列,是数据库上的一个执行单位。事务的结构事务的结构可描述为:提交(commit):将事务所做的操作结果永久化,使数据库状况从事务执行前的状态改变到事务执行后的状态。废弃(abort):把事务所做的操作全部作废,使数据库保持事务执行前的状态。基本概念Transaction,isasequenceofdatabaseoperationsorganizedinabasicunitforkeepingdatabaseconsistentandreliable.Adatabaseisinaconsistentstateifitfollows:–Entityintegrity–Referentialintegrity–Domainvalueconstraints–etc.基本概念Atemporaryinconsistentstateofatransactionshouldnotbeexposedtoothertransactions.基本概念Adatabaseshouldbeinaconsistentstateevenifthereareanumberofconcurrenttransactionsaccessingthedatabase.Adatabaseisreliableifitisresilientandcapableofrecovering.AtransactionisasequenceofreadandwriteoperationsonaDBwithsomespecialproperties(ACID).•AnSQLstatementisatransaction.•AnembeddedSQLstatementisatransaction.•Aprogramenclosedby“Begin-transaction”and“end”isatransaction.TerminationConditionsofTransactions–Atransactionmaybeterminatebycommandof-commit,i.e.successfullycompleted,or-rollback,i.e.aborted,or-otherreasons–CommitmakesDBoperationseffectpermanentandtheresultisvisibletoothertransactions.–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)–thesetofdataitemsthatatransactionreadsWriteSet(WS)–thesetofdatathatatransactionwritesBaseSet(B)--RSWSFormalizationoftheTransactionConceptNoteisanorderingrelationfordatabaseoperationsof.Twooperationsareinconflictifoneofthemisawrite.iTiFormalizationoftheTransactionConceptForexample: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.一致性体现为:Consistencydegree31.AtransactionTdoesnotoverwritedirtydataofothertransactions.2.AtransactionTdoesnotcommitanywritesuntilitcompletesallwrites,i.e.untiltheendofT.3.Tdoesnotreaddirtydatafromothertransactions.4.OthertransactionsdonotdirtyanydatareadbyTbeforeTcompletes.Degree2:1stto3rdofabove4Degree1:1stto2ndofabove4Degree0: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)Byapplicationsnon-distributedvs.distributedcompensatingtransactions,ifitspurposeistoundotheeffectofprevioustransactionsheterogeneoustransactions,iftheapplicationrunsinaheterogeneousDB事务的种类(TYPESOFTRANSACTIONS)BydurationOn-lineorshort-lifetransactionsBatchorlong-lifetransactionsBystructureTraditionalflatstructureNestedworkflowsByorganizationofreadandwriteactionstwo-stepRestrictedactionmodel事务的种类(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.ARCHITECTUREREVISITEDNote:thismodelisnotunique.集中式的事务执行分布式的事务执行分布式事务1分

1 / 50
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功