分布式事务管理与恢复

上传人:cl****1 文档编号:589977318 上传时间:2024-09-12 格式:PPT 页数:58 大小:220.02KB
返回 下载 相关 举报
分布式事务管理与恢复_第1页
第1页 / 共58页
分布式事务管理与恢复_第2页
第2页 / 共58页
分布式事务管理与恢复_第3页
第3页 / 共58页
分布式事务管理与恢复_第4页
第4页 / 共58页
分布式事务管理与恢复_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《分布式事务管理与恢复》由会员分享,可在线阅读,更多相关《分布式事务管理与恢复(58页珍藏版)》请在金锄头文库上搜索。

1、祸男锥泌赛郭抛劲象净欠跑姜红急卖郧牧韵捆善敞湛州犹憾穗靴爵敷轴簧分布式事务管理与恢复分布式事务管理与恢复分布式事务管理与恢复分布式事务管理与恢复障祟脚淄偶驾避团百晶伎鸡涂即银孝备镶仁息机谦疼瘦累擂诚摆粉尝抽哨分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 2事务概念事务概念事务是访问或更新各种数据项的程序执行单元.事务必须保证数据库的一致性事务执行期间数据库可能不一致录汝绚握辛厦痛将蔬戏谋栽贡宁借招见噬膀吓荫宴剔尹积角啄醇睛凄拈甫分布式事务管理与恢复分布式事务管理

2、与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 3事务概念事务概念-续续 当事务提交(commit)时数据库必须是一致的DatabaseConsistentConsistent篮标器踌仪窟奖阎加堂酪坯衣产棘舀砷剿权谅佑抛笆粘过君拆婶铜圆耶面分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 4事务概念事务概念-续续 两个问题:故障 各种软硬件故障并发执行 多个事务同时执行

3、沤爸涯侄绰皿柞匀莉炭误彪邓涛斗腻膘便滥抉碍逾鹃造赶晓帘总欢聊宋豺分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 5事务性质事务性质ACID原子性(原子性(Atomicity) 事务的操作要么全部执行, 要么全部不执行 一致性(一致性(Consistency) 并发执行的多个事务,其操作的结果应与以某种顺序串行执行这几个事务所得的结果相同. 持久性(持久性(Durability) 当事务提交后, 其操作的结果将永久化, 而与提交后发生的故障无关 诣寻猿驻鸟价拙谅捧哼

4、滦或衙脸正酚尝奄真樱面米衣竖烯验古缆蔓接戊匆分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 6事务性质事务性质-续续独立性( Isolation) 虽然可以有多个事务同时执行,但是单个事务的执行不应该感知其他事务的存在,因此事务执行的中间结果应该对其他并发事务隐藏 一对事务 Ti 和 Tj的执行, 看起来好像是或者 Ti 在Ti 执行结束之后才开始执行,或者Tj,是在 Ti执行结束之后才开始执行疏劈灭漓岸朵颁巴宋里登坚任谍缆衡甥垣锈蛮胜牺羔芥烛鸦亢抗埋劲淌擂分布式

5、事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 7举例举例从账号A向账号B转账 $50: 1. read(A) 2. A := A 50 3. write(A) 4. read(B) 5. B := B + 50 6. write(B)姿肠恤省碧东删脉镀坝狞济禽竖际苟色版然乍凤瑚澈拳刻医莉怠朵茂广素分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPa

6、ge 8举例举例-续续 一致性要求 事务执行后A 和 B账号的总金额不变原子性要求 如果事务在第3步和第6步之间故障, 系统应该保证事务对数据库的修改没有产生,否则将导致不一致性根糜诲俭满结膛航毖球蛆虚注囚详盐哆税熄艳洱烟潘婚帘翠淀盎淬苹等侧分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 9举例举例-续续持久性要求 一旦用户通知说事务已经完成(即$50 转账成功),那么由该事务对数据库的修改就必须保证是永久的,即使是发生故障也如此答钮双您索特陈挂晚淋尸纠是暴恼腻员

7、洁苑怖拾贝慈烽陇评兹啊么考踩连分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 10举例举例-续续独立性要求 如果在第 3步和第6步之间, 允许其他事务访问被修改的数据库的中间结果, 那么它将见到一个不一致的数据库 (也就是说, A + B 的和少于它的正确值) 当然事务的串行执行将不会出现这种情况,但是数据库中事务并行执行的优点就损失了例琐罢认酮窒钞苟腹任装瓮独枫殃悍亡犀突析捆求靡月庄稠喧蹈勾吾觉竖分布式事务管理与恢复分布式事务管理与恢复Distributed D

8、BMSUniversity of Shanghai for Science and TechnologyPage 11事务状态事务状态活动 从事务开始执行的初始状态始, 事务执行中保持该状态部分提交 事务的最后一个语句执行后进入该状态失败 一旦发现事务不能正常执行时进入该状态一旦发现事务不能正常执行时进入该状态夭折 当事务被回滚后,数据库恢复到事务开始当事务被回滚后,数据库恢复到事务开始执行前的状态。执行前的状态。 事务夭折后有两种选择重启动 仅当没有内部逻辑错误时KILL提交 当事务成功执行后.彦尾惊明拟铲企踪李瓦趟陵嫌佑浓乓垒辩捂绑睡吉硬肆脯涸洱鼓稽理氟可分布式事务管理与恢复分布式事务管理

9、与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 12事务状态事务状态-续续abortedcommittedfailedPartiallycommittedactive队砒逊亦旭滓独迂以记玄救窟码讲隋悟章淑狞嘿探邹耕稠洲升砂帆疟惜捷分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 13分布式事务分布式事务分布式事务是由若干个不同Site上的子事务组成的事务事务的ACID性

10、质此时事务的原子性、一致性、持久性、独立性等都要将每个Site上的子事务考虑在内饭匣坑摘绷荡亥楞料萄福抽龟对咐烦酣靛御圃玉燃讶迎祟突卷蜡盯壁灸鱼分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 14分布式事务结构分布式事务结构Begin Trans . . . .Abort/CommitBegin Trans T1 T2 . . . Tn Abort/Commit碟粘葬邢园陕漓枕婴遗泅阉庶企欲费嘱吊免羹案境乏兔扯涂南捶聪批跌躯分布式事务管理与恢复分布式事务管理与恢复

11、Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 15进程协作进程协作进程 系统中可以并行执行的一段操作序列,分布式事务中的子事务序列是进程方式完成过程 不可并行执行的操作序列转啃胜讲羊苛栖嘿共相桂姿霄晓陡药善辅识苔釉棉磋宋锅贴调铜傣嚏豪白分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 16事务代理(Agent) 应用在各个Site上执行的若干进程,称作应用在该Site上的代

12、理。代理可以执行应用程序员写的程序,也可以执行系统的原语函数,不同代理间通过报文实现通讯,根代理(Root Agent) 应用启动Site上的代理。根代理所在的Site称作原发Site。 一般,根代理负责发系统原语,只有根代理可以请求创建新代理。事务代理缀睡辣闸缅厢玖兢讣畏坯皱狮珠柠姓碰曙灿拨扳虑丹祥培劈脐报近昧腐醚分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 17转账应用转账应用事务在两个账户之间执行“基金汇兑”操作。全局关系 Account (Account

13、-number, Amount)假设账户分布在网络的不同站点上。盏妒艘纵搞桂掠擒怀葛里足幼茅变佯氟螟恿尝笋万挪入狂并辙畅盖偏濒上分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 18全局级转帐事务FUND_TRANSFER:read (terminal,$AMOUNT,$FROM_ACC,$TO_ACC);begin_transaction;select AMOUNT into $FROM_AMOUNT from ACCOUNT where ACCOUNT_NUMB

14、ER=$FROM_ACC;if $FROM_AMOUNT-$AMOUNT0 then abortelse begin update ACCOUNT set AMOUNT = AMOUNT-$AMOUNT where ACCOUNT_NUMBER = $FROM_ACC; update ACCOUNT set AMOUNT = AMOUNT+$AMOUNT where ACCOUNT_NUMBER = $TO_ACC; commitend浪淮臻搔纷瓦埔审六夯喉愿恿咎暂爽馆痉鞘涝厨排碉芹写癸装屹牛钾啦涤分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity o

15、f Shanghai for Science and TechnologyPage 19输入:汇出金额和转入/转出帐号事务开始:检查转出帐号中是否 有足够的转出资金?更新转出帐号存款余额创建AGENT1向代理1送消息:转入帐号,金额等待来自AGENT1的消息成功?提交事务:成功结束撤消事务:失败结束ROOT_AGENTAGENT接收来自根代理的信息更新转入帐号存款余额发送执行消息给根代理(成功或失败)是否否转账应用处理流程在柳杜弧配妇河处捂抒里郸舞讨淀吊稀靡垒虑远还终浸怨朽氖揣媚镀算义分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shang

16、hai for Science and TechnologyPage 20ROOT_AGENT;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 abortelse begin update ACCOUNT set AMOUNT = AMOUNT-$AMOUNT where ACCOUNT_NUMBER = $FROM

17、_ACC;create AGENT;send to AGENT($AMOUNT,$TO_ACC);commit/*这里省略了等待消息和判别*/endAGENT;receive from ROOT_AGENT($AMOUNT,$TO_ACC);update ACCOUNT set AMOUNT=AMOUNT+$AMOUNT where ACCOUNT=$TO_ACC;send to ROOT_AGENT(SUCCESS/FALL) 转账事务的两个代理平殴藏涩桓喜朋车龄黍巴苛忧堡忙檀局诉唉站柔抗束馁机贮薄酞圆哭炮傻分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniver

18、sity of Shanghai for Science and TechnologyPage 21事务管理目标事务管理目标效率的几个重要方面CPU和主存的使用控制报文响应时间可用性目标维护事务的ACID性质获得最小的主存和CPU开销,降低报文数目,加快响应时间获得最大限度的可靠性和可用性夷尚草旺创吨超羔帚瞬曙栽移掏消组父鞍奴顽椽渝靡癌蛤犊肥癣陋赊栈动分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 22事务管理事务管理DTM功能 保证分布式Trans的特征,特别是

19、原子性支持分布式Trans执行的位置传递LTM功能保证本地Trans的特征代替DTM把分布Trans的执行与恢复信息记入Log接收并遵从本Site上DTM发来的Log原语,记入Log并执行之DTMLTMSiteLog原语: Local Begin-Trans, Local-Commit, Local-Abort噶攫搐娥助持詹怖口忽修乳俐耸漏蓄真寞栋庄叹痉竟郴本嚎肮菊套连戒倔分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 23分布式分布式Trans执行的控制模型执行

20、的控制模型主从模型 LTM之间无通信三角模型 LTM之间有通信层次控制模型 LTM之间有通信,并且LTM还可再创建Agent,控制其它LTM执行蹈纱缩抖瑟肺慌腊郧刊邢朽岿霖万选障倡闰券丹琐搀豪豆给降厕聋焰伦瞄分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 24分布式事务管理器局部事务管理器局部事务管理器局部事务管理器数据库数据库数据库命令命令命令回答回答回答主从控制魂职玲晓窃扑克如晚骸哇评中泳田履树澎肺粱能鲜裹偷翘节质瓦港辐型昏分布式事务管理与恢复分布式事务管理与

21、恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 25分布式事务管理器局部事务管理器局部事务管理器数据库数据库命令命令回答回答临时数据三角控制巢兴皂聘军锚熏础芜透灭赖敷钦谎氓劲渐痘婚萤过蛰些某懂亭焊呜亥浮竹分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 26分布式事务管理器局部事务管理器数据库命令命令回答回答局部事务管理器局部事务管理器局部事务管理器局部事务管理器局部事务

22、管理器命令命令命令命令回答回答回答回答数据库数据库数据库数据库数据库层次控制檬皖桅淹钧狡巧河蚕暴玖季酮蛔案鹏磁眯誉妓踞侮蓑世煎揍烛茂瞪赤细卢分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 27故障类型故障类型事务故障由非预期的、不正常的程序结束所造成的故障,即事务没有执行到Commit或显示Rollback语句的故障,如:溢出、死循环等内存、磁盘上信息没有损失,使用Log做Rollback系统故障造成系统停止运行的任何事件,要求系统重启动内存、I/O Buffer

23、内容皆丢失,DB没有破坏,恢复时,搜索Log, 确定Rollback的Trans。设置检查点翰烹唤钮蟹瓣絮刃施劳术输潦蔬斌酥坯审酵豺摊穿负延究裁叮疵捻攫审傍分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 28故障类型故障类型-续续介质故障辅助存储器介质遭破坏数据丢失, 日志无损失 从某个Dump状态开始执行已提交事务数据与日志都丢失 不可能完全恢复通讯故障前三种统称为站点故障. 剖刽哄冻痹托献陌钱间芯姥泻狙创桂冻砰丙痕厄桔回区汲刮萍捶卞昌巨筹分布式事务管理与恢复分

24、布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 29通讯故障通讯故障通讯发生, 既有某个报文Message从Site x 发往Site y, 正常情况:(a) 在Dmax 之后, x 站点收到y发回的应答信息(Ack)(b) y收到的Message是一个合适的次序(c ) Message本身的信息是正确的 但是当某个Dmax之后, x还没收到y的Ack, 则可能发生: (a) Message 或 Ack 信息丢失 (b) 网络分割, 及网络不通Site xSite ymessageAc

25、k减咀辨弟裔迄祖沟松各昼候步途蛹盒衔寄耿诱糙若捅构民鉴怜釉上逆绊妥分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 30通讯故障通讯故障-续续 问题可以进一步分为:a) 是否是所在Site故障, 还是系统慢下来了?b) 若是故障, 是通讯故障, 还是 y 站点故障?c) Message 是否已到达 y 站点? 对上述故障, 其恢复程序可以有不同级别:一级: 仅处理Site故障二级: Site故障及Message故障三级: Site故障及Message故障, 还包括网

26、络分割SiteSiteSite Site Site Site Site 昆断埋总泡依的吊餐肖拙曹乳玩漠鸥谣箩扮宪臆侩荚栏沮嗽走仟紫鱼捶镀分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 31恢复算法恢复算法恢复算法是保证系统故障后数据库仍保持一致性,以及保证事务原子性和持久性的技术恢复算法有两部分组成在事务正常执行时,记录下足够的能使系统恢复的信息在故障发生时,恢复数据库到一致性、原子性和持久性状态每撒铺拷毡畜醚抄萧垢遮脾召擒逾镐咨总蹭浆疯吗局吃远咐券柴呜贮予栏分布

27、式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 32事务日志事务日志日志Log 记录所有对DB的操作事务标识 每个事务给定一个具有惟一性的标识符Log记录项 : 开始, T, 提交, T, 夭折, T, 读, T, x, 写, T, x, 旧值, 新值DB写动作 Log优先 Log存储 一般存在盘上, 事务提交时, Log Buffer强迫写迟漏允泳顺堵蘸鸡较觉隆喊履滔舀嫩慢算晨进湍异欧躲割聚夜诈浇捎湍沦分布式事务管理与恢复分布式事务管理与恢复Distributed

28、DBMSUniversity of Shanghai for Science and TechnologyPage 33Log举例举例Log Write Output A = 950 B = 2050 BB, BA C = 600 BC 注: BX 表示含有X的存储块.卡潦秋使漱吱领露蛙僻派凌宵膝索馒趾臼奈权风点淑喇录上煮蛮舍哨糙棋分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 34数据访问数据访问xYABx1y1 缓冲区缓冲块 A 缓冲块 Binput(A)ou

29、tput(B) read(X)write(Y)磁盘 T1工作区T2 工作区主存x2牛窗粒谭跋与兼偿戚瞧畸蜘猩巷选爸菲盾筛躺瞧滤纵肾秦睬氨轮并劲蛤愧分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 35基于日志的恢复基于日志的恢复当系统故障时:如果 log 含有记录, 但没有记录 ,事务 Ti 必须执行 undone 如果 log 即含有 又有 记录,事务 Ti 必须 redone Undo 操作先执行, redo 操作后执行.琉遁弃窟拾镶妖豪荷膊乳夜赣判节衫刘补拙喧

30、希膊佣践宙京能赁遵立吏溅分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 36举例举例 已知事务 T0 和 T1 (T0 在 T1前执行):T0: read (A)T1 : read (C)A: = A - 50C:=C- 100Write (A) write (C)read (B)B:= B + 50write (B)蜘婴派波片背点擅模踢麦仇楷油兔股镜雍衰拔懂舷大苔召埋辨惟驻汕抛讲分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniver

31、sity of Shanghai for Science and TechnologyPage 37举例举例-续续如下是系统在三个不同时刻的Log记录.攀壶浴进泉孔锑奎关刨河央氯憨与捧塔墒置柄咳虑桂湛耐项藉玄韧孪凸憋分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 38举例举例-续续 三个不同时刻的系统恢复动作:(a) undo (T0): B 恢复到 2000 ,A恢复到 1000.(b) undo (T1) 并且 redo (T0): C恢复到 700, 然后

32、A和 B 分别写入950 和 2050 .(c) redo (T0)和 (T1): A 和 B分别写入950 和 2050 .C 写入600菩愉谤榜曝革踩欺铭迫般泣忿形栽腑寇彦值蛔瞒虹柠猿燥瓣僳疡睁拿匆帧分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 39检查点检查点检查点设置一个周期性操作点a) Log Buffer写入Log数据集b) 写检查点Log项, 当前活动事务表, 每个事务最近一次Log记录在Log文件中的位置c) DB Buffer写入DBd) 将检

33、查点Log项在Log文件中的位置记入“重启动文件”擞愈勤注凳订堤鹊浮唬汪未辟娟隧仿怨础敬簇牙蒙绸阵巳煎成译相札勾嚼分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 40检查点恢复检查点恢复T1 可以忽略 (因为有检查点,更新已经被写入磁盘)T2 和 T3 redone.T4 undoneTcTfT1T2T3T4checkpointsystem failure于痒涯送胺美池脱里女阅口玛恨蕾肇胸认彪怪渣秧菏啄滑般北盒付楼矗踩分布式事务管理与恢复分布式事务管理与恢复Dis

34、tributed DBMSUniversity of Shanghai for Science and TechnologyPage 41事务故障恢复事务故障恢复恢复原则孤立和逐步退出事务的原则 undo 事务已对DB的修改 ( 不影响其他事务的可排除性局部故障)成功结束事务原则 Redo 已成功事务的操作夭折事务原则 撤销全部事务, 恢复到初态 (Undo)轨遏桔尧鱼菲揽闯氏春锰幌坷羔划拒桩芳甩钮平衙固刻沏界处殃胚谩腊替分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPa

35、ge 42事务故障恢复事务故障恢复-续续本地事务恢复 (与集中式恢复相同)从“重启动文件” 读出最近Checkpoint的地址, 并定出Checkpoint在Log文件中的位置创建Redo表, Undo表(即Checkpoint相应内容中的活动事务表)检查得出Redo事务与Undo事务反向检索Log, 将Undo表中事务撤销, 直到遇到对应的Begin Trans正向检索Redo事务的Log记录, 并执行之, 直到对应的Commit记录驹拦淀呢芝瞬撒壶甄簇匈镍记微朴汕仟搬铂界告夕巨囤乐厕杯甄碧斟参叭分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity o

36、f Shanghai for Science and TechnologyPage 432PC协议协议 (2-Phase Commit )基本思想 将本地原子性提交行为的效果扩展到分布式事务, 保证了分布式事务提交的原子性, 并在不损坏Log的情况下, 实现快速故障恢复, 提高DDB系统的可靠性.第一阶段 表决阶段第二阶段 执行阶段两类代理协调者(Coordinator)参与者(Participants)兰茄灾翌滥喀刑七汞取慢咎豆守焚虽堂狮曹甜潭惯误罩蛹悯樱涨援巨院暑分布式事务管理与恢复分布式事务管理与恢复初始写begin_commit到日志等待有要求撤消的?写commit到日志提交写end_

37、of_transt到日志初始准备提交?写ready到日志就绪消息类型?写abort到日志写commit到日志提交撤消撤消写abort到日志写abort到日志协调者参与者nonoabortcommit准备撤消提交全局撤消全局提交ACKACK慕壶兵轧症剁宰巍孽痢啮琶拎啃芭隐邀诲喇蚌灼伤卉衬胸抒禹字昔拿牌子分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 452PC的通讯结构的通讯结构集中式通讯只发生在协调者和参与者之间,参与者之间不交换信息分层式协调者是在树根的DTM代

38、理者,协调者与参与者之间的通讯不用直接广播的方法进行,而是使报文在树中上下传播。每个DTM代理这是通信树的一个内部节点,它从下层节点除收集报文或向他们广播报文。线性 参与者之间可以互相通信。系统中的站点间要排序分布式允许所有参与者在第一阶段相互通信,从而可以独立做出事务终止决定。宿绞邢融凌环毋碳缉唆挫砚婪饿沪丈乔砖畔吻蓑芦蹄实璃巾氰腆修爸解脚分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 4623451234511协调者参与者协调者协调者参与者第一阶段第二阶段准备

39、建议撤消/提交全局撤消/提交提交/撤消集中式羊柿腾晤郊阜藉咒区碌同翌霜惑鲁颤脓获本妙夹没仆农司着公抒帮邵襟井分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 4734251511协调者参 与 者协调者协调者参 与 者第一阶段第二阶段准备建议撤消/提交全局撤消/提交提交/撤消23422分层式苟嘶连使赁缘芍憾瞥赴皋蜕雷汛鼠萌读簿喂烧射肿肥菜迫伯顺罩霉因凰钦分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai

40、 for Science and TechnologyPage 481234n第一阶段第二阶段准备建议提交/撤消建议提交/撤消建议提交/撤消全局提交/撤消全局提交/撤消全局提交/撤消全局提交/撤消线性式断布您戮戚南税果哪晒辛旺老研块翰登棱娟折昼扦耸泳蚌觉欣皖潍英代贞分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 491n4324321n协调者协调者协调者+参与者第一阶段准备建议撤消/提交全局撤消/提交可独立做决定分布式究竞卧卿立绩豌稽妊猛烂倦守展曾摹许柿糙仆嫁码边

41、播氧蕾滤傀种前瓤行分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 502PC与故障恢复与故障恢复1.站点故障a 参与者在将“Ready”记录入Log之前故障此时协调者达到超时,Abort发生。站点(P)恢复时,重启动程序将执行Abort,不必从其他站点获取信息。b 当将“Ready”写入Log后,P故障此时所有运行的站点都将正常结束事务(Commit/Abort)。P恢复时,因为P已Ready,所以不可判定C的最终决定。因此恢复时,重启动程序要询问C或其他站点。c

42、 当C将“Prepare”写入Log,但“G-commit”/”G-abort”还没有写入是故障所有回答“Ready”的P等待C恢复。C重启动时,将重开提交协议,重发“Prepare”,于是P要识别重发。d C在将“G-commit”/”G-abort”写入Log后,“Complete”没有写入前故障收到命令的P正常执行,C重启动程序必须再次向所有P重发命令。以前没有收到命令的P也必须等待C恢复,P要识别两次命令。e “Complete”写入Log后故障无任何动作发生灯什销成增捞戒釜交跳荫郁菇诧吠枉胖骨腐玉嚷请得事蓑婚眷考拈瘴痈顾分布式事务管理与恢复分布式事务管理与恢复Distributed

43、DBMSUniversity of Shanghai for Science and TechnologyPage 512PC与故障恢复与故障恢复-续续2. 报文丢失a 从P发出的“Ready”/“Abort”报文丢失C达到超时,整个事务执行“G-abort”。该故障仅能被C识别,此时C认为P故障,但P并无故障,不需执行重启动程序。b “Prepare”报文丢失P等待,C得不到回答,结果同2.ac “G-commit”/”G-abort”报文丢失P处于不确定状态。回答“Abort”的可以确定其工作,回答“Ready”的不行。此时可以修改加入计时器,超时则申请重发命令。d “Ack”报文丢失C超

44、时,可重发“G-commit”/”G-abort”命令,P无论是否有活动,都重发“Ack”报文废臻渺颖狂枷邯昔赦犊氟棋幅运盖置串溶留芋砖啃敏逼哎殉橱憾沾怯由铸分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 522PC与故障恢复与故障恢复-续续3.网络分割假设分成两组。一组是协调者,一组是参与者。于是从协调者看是参与者组故障,结果同1.a, 1.b。 从参与者组看是协调者站点故障,动作如1.c, 1.d。御揩矛络泻姜痞辜匝涟畦撼悠硕剂滓灯仍镊贼泉宽钳鼠纸饶诅连食辅恋

45、撂分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 53初始写begin_commit到日志等待有要求撤消的?写commit到日志提交写Complete到日志初始准备提交?写ready到日志就绪消息类型?写abort到日志写commit到日志提交撤消撤消写abort到日志写abort到日志协调者参与者nonoabortcommit 2. b 准备2.a撤消2.a 提交2.c全局撤消全局提交ACKACK1.c1.d1.e1.a1.b2.d栋赠唬悄友蔼酣踌洽巳童常纵忠奢

46、举哩滑摊酬坠心畜结锈涎陶瑶掺众钵透分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 54业务规则的一致性业务规则的一致性有效性约束 域约束数据依赖约束 实体完整性和引用完整性例子取现金时 一个账户的存款余额必须等于或大于零转账时一个账户的存款余额必须等于或大于零. 事务结束时,两账户中存款总和, 必须与事务开始时两账户存款之和相同定期利息计算事务执行后, 所有账户存款之和比事务开始前各账户存款总和大于10%胖腰啡纺下壕铂塌邮陀崇堵炎惋嘶巍北通吃莉呜丰颓膘蒙为耀搓牢蒂

47、事诵分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 55冗余数据的一致性冗余数据的一致性冗余数据必须保持一致例子site1 site2T1: Read(x) x=x*1.1 write(x) T2: Read(x) x=x-20 write (x)设数据x在两个站点都有副本. 两个事务分别执行, 这样两个事务的执行会产生不同的结果.处置x=50, T2T1的执行顺序得到 x=33 (x-20)*1.1=(50-20)*1.1 T1T2的执行顺序得到 x=35 (x

48、*1.1)-20=50*1,1)歉呼口伊斌涎仆壬迄靖霓跌产粟理菲余诚诞荔迫除劫给逾卞笆佐蠢焉崭沾分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 56冗余数据的一致性冗余数据的一致性-续续异步复制器 冗余数据绝对保持一致是不可能的, 一般允许对冗余数据的修改有暂时的不一致.复制数据库的应用向分站点发送只读数据在一个周期结束时从分站点对中心站点复制这个周期内改变过的数据建立关键数据的备份副本嗣弱揩磺耐霜钳翘顽湾翁浪税快件站抿畸准崎儡敢昔菌兔瞬某炼直傅涛匆分布式事务管理

49、与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 57冗余数据的一致性冗余数据的一致性-续续不同复制器的差别a 何时在主copy上获取数据b 何时把主副本上的数据用到辅助副本上对a有方法 1. 数据驱动: 当事务修改主副本时, 获取有关数据修改信息, 并将其写到一个获取文件或队列中. 2. 计时器驱动: 由系统在用户定义的时间间隔自动获取相关数据修改信息 3. 应用程序驱动: 由应用中的事件引发系统从主副本把数据复制到获取文件或队列中 郧钦铱陌进钵系阔初洁臻媚酶销窘么原侍倘汞苑招

50、串琢员隋巨窄盏驰耪肖分布式事务管理与恢复分布式事务管理与恢复Distributed DBMSUniversity of Shanghai for Science and TechnologyPage 58冗余数据的一致性冗余数据的一致性-续续对b有方法 1. 数据驱动: 在主副本上由修改Trans所做的修改, 立即复制, 传输和应用于辅存储器 2. 计时驱动: 修改Trans在主副本上的修改, 在用户定义的区间应用于辅助副本 3. 应用程序驱动: 由应用中的事件引发系统获取文件或队列对辅助副本进行修改 哪茹役蒙氟辑贵穗惺铲艰霞璃阻忱谗裴澳惠超痈子揖砖萌阑涟歌强浑舌今分布式事务管理与恢复分布式事务管理与恢复

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号