分布式事务管理与恢复ppt课件.ppt
《分布式事务管理与恢复ppt课件.ppt》由会员分享,可在线阅读,更多相关《分布式事务管理与恢复ppt课件.ppt(58页珍藏版)》请在三一文库上搜索。
1、分布式事务管理与恢复,事务概念,事务是访问或更新各种数据项的程序执行单元. 事务必须保证数据库的一致性 事务执行期间数据库可能不一致,事务概念-续,当事务提交(commit)时数据库必须是一致的,Database,Consistent,Consistent,事务概念-续,两个问题: 故障 各种软硬件故障 并发执行 多个事务同时执行,事务性质,ACID 原子性(Atomicity) 事务的操作要么全部执行, 要么全部不执行 一致性(Consistency) 并发执行的多个事务,其操作的结果应与以某种顺序串行执行这几个事务所得的结果相同. 持久性(Durability) 当事务提交后, 其操作的结
2、果将永久化, 而与提交后发生的故障无关,事务性质-续,独立性( Isolation) 虽然可以有多个事务同时执行,但是单个事务的执行不应该感知其他事务的存在,因此事务执行的中间结果应该对其他并发事务隐藏 一对事务 Ti 和 Tj的执行, 看起来好像是或者 Ti 在Ti 执行结束之后才开始执行,或者Tj,是在 Ti执行结束之后才开始执行,举例,从账号A向账号B转账 $50: 1. read(A) 2. A := A 50 3. write(A) 4. read(B) 5. B := B + 50 6. write(B),举例-续,一致性要求 事务执行后A 和 B账号的总金额不变 原子性要求 如果
3、事务在第3步和第6步之间故障, 系统应该保证事务对数据库的修改没有产生,否则将导致不一致性,举例-续,持久性要求 一旦用户通知说事务已经完成(即$50 转账成功),那么由该事务对数据库的修改就必须保证是永久的,即使是发生故障也如此,举例-续,独立性要求 如果在第 3步和第6步之间, 允许其他事务访问被修改的数据库的中间结果, 那么它将见到一个不一致的数据库 (也就是说, A + B 的和少于它的正确值) 当然事务的串行执行将不会出现这种情况,但是数据库中事务并行执行的优点就损失了,事务状态,活动 从事务开始执行的初始状态始, 事务执行中保持该状态 部分提交 事务的最后一个语句执行后进入该状态
4、失败 一旦发现事务不能正常执行时进入该状态 夭折 当事务被回滚后,数据库恢复到事务开始执行前的状态。 事务夭折后有两种选择 重启动 仅当没有内部逻辑错误时 KILL 提交 当事务成功执行后.,事务状态-续,aborted,committed,failed,Partially committed,active,分布式事务,分布式事务是由若干个不同Site上的子事务组成的事务 事务的ACID性质 此时事务的原子性、一致性、持久性、独立性等都要将每个Site上的子事务考虑在内,分布式事务结构,Begin Trans . . . . Abort/Commit,Begin Trans T1 T2 . .
5、 . Tn Abort/Commit,进程协作,进程 系统中可以并行执行的一段操作序列,分布式事务中的子事务序列是进程方式完成 过程 不可并行执行的操作序列,事务代理(Agent) 应用在各个Site上执行的若干进程,称作应用在该Site上的代理。代理可以执行应用程序员写的程序,也可以执行系统的原语函数,不同代理间通过报文实现通讯,根代理(Root Agent) 应用启动Site上的代理。 根代理所在的Site称作原发Site。 一般,根代理负责发系统原语,只有根代理可以请求创建新代理。,事务代理,转账应用,事务在两个账户之间执行“基金汇兑”操作。 全局关系 Account (Account-
6、number, Amount) 假设账户分布在网络的不同站点上。,全局级转帐事务 FUND_TRANSFER: read (terminal,$AMOUNT,$FROM_ACC,$TO_ACC); begin_transaction; select AMOUNT into $FROM_AMOUNT from ACCOUNT where ACCOUNT_NUMBER=$FROM_ACC; if $FROM_AMOUNT-$AMOUNT0 then abort else begin update ACCOUNT set AMOUNT = AMOUNT-$AMOUNT where ACCOUNT_N
7、UMBER = $FROM_ACC; update ACCOUNT set AMOUNT = AMOUNT+$AMOUNT where ACCOUNT_NUMBER = $TO_ACC; commit end,输入:汇出金额和转入/转出帐号,事务开始:检查转出帐号中是否 有足够的转出资金?,更新转出帐号存款余额 创建AGENT1 向代理1送消息:转入帐号,金额,等待来自AGENT1的消息,成功?,提交事务:成功结束,撤消事务:失败结束,ROOT_AGENT,AGENT,接收来自根代理的信息,更新转入帐号存款余额,发送执行消息给根代理 (成功或失败),是,否,否,转账应用处理流程,ROOT_AG
8、ENT; read(terminal,$AMOUNT,$FROM_ACC,$TO_ACC); begin_transaction; select AMOUNT into $FROM_AMOUNT from ACCOUNT where ACCOUNT_NUMBER=$FROM_ACC; if $FROM_AMOUNT-$AMOUNT0 then abort else begin update ACCOUNT set AMOUNT = AMOUNT-$AMOUNT where ACCOUNT_NUMBER = $FROM_ACC; create AGENT; send to AGENT($AMOU
9、NT,$TO_ACC); commit/*这里省略了等待消息和判别*/ end AGENT; receive from ROOT_AGENT($AMOUNT,$TO_ACC); update ACCOUNT set AMOUNT=AMOUNT+$AMOUNT where ACCOUNT=$TO_ACC; send to ROOT_AGENT(SUCCESS/FALL),转账事务的两个代理,事务管理目标,效率的几个重要方面 CPU和主存的使用 控制报文 响应时间 可用性 目标 维护事务的ACID性质 获得最小的主存和CPU开销,降低报文数目,加快响应时间 获得最大限度的可靠性和可用性,事务管理,
10、DTM功能 保证分布式Trans的特征,特别是原子性 支持分布式Trans执行的位置传递 LTM功能 保证本地Trans的特征 代替DTM把分布Trans的执行与恢复信息记入Log 接收并遵从本Site上DTM发来的Log原语,记入Log并执行之,DTM,LTM,Site,Log原语: Local Begin-Trans, Local-Commit, Local-Abort,分布式Trans执行的控制模型,主从模型 LTM之间无通信 三角模型 LTM之间有通信 层次控制模型 LTM之间有通信,并且LTM还可再创建Agent,控制其它LTM执行,分布式事务 管理器,局部事务 管理器,局部事务 管
11、理器,局部事务 管理器,数据库,数据库,数据库,命令,命令,命令,回答,回答,回答,主从控制,分布式事务 管理器,局部事务 管理器,局部事务 管理器,数据库,数据库,命令,命令,回答,回答,临时数据,三角控制,分布式事务 管理器,局部事务 管理器,数据库,命令,命令,回答,回答,局部事务 管理器,局部事务 管理器,局部事务 管理器,局部事务 管理器,局部事务 管理器,命令,命令,命令,命令,回答,回答,回答,回答,数据库,数据库,数据库,数据库,数据库,层次控制,故障类型,事务故障 由非预期的、不正常的程序结束所造成的故障,即事务没有执行到Commit或显示Rollback语句的故障,如:溢出
12、、死循环等 内存、磁盘上信息没有损失,使用Log做Rollback 系统故障 造成系统停止运行的任何事件,要求系统重启动 内存、I/O Buffer内容皆丢失,DB没有破坏,恢复时,搜索Log, 确定Rollback的Trans。 设置检查点,故障类型-续,介质故障 辅助存储器介质遭破坏 数据丢失, 日志无损失 从某个Dump状态开始执行已提交事务 数据与日志都丢失 不可能完全恢复 通讯故障 前三种统称为站点故障.,通讯故障,通讯发生, 既有某个报文Message从Site x 发往Site y, 正常情况: (a) 在Dmax 之后, x 站点收到y发回的应答信息(Ack) (b) y收到的
13、Message是一个合适的次序 (c ) Message本身的信息是正确的 但是当某个Dmax之后, x还没收到y的Ack, 则可能发生: (a) Message 或 Ack 信息丢失 (b) 网络分割, 及网络不通,Site x,Site y,message,Ack,通讯故障-续,问题可以进一步分为: a) 是否是所在Site故障, 还是系统慢下来了? b) 若是故障, 是通讯故障, 还是 y 站点故障? c) Message 是否已到达 y 站点? 对上述故障, 其恢复程序可以有不同级别: 一级: 仅处理Site故障 二级: Site故障及Message故障 三级: Site故障及Mess
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分布式 事务管理 恢复 ppt 课件
链接地址:https://www.31doc.com/p-2071084.html