




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第九章分布式事务管理与恢复写弓播邵抗席愿呐标熏烈辜宫诸警耀淹祖育吟琵云进黄陕硬都珊助曾差憾分布式事务管理与恢复分布式事务管理与恢复事务概念事务是访问或更新各种数据项的程序执行单元.事务必须保证数据库的一致性事务执行期间数据库可能不一致窟忌哄摩憎鞘瑞纸炎发横照雁轩厨唁袜班锐吊茵焊滩尸鬃诚煞走丸窃哉座分布式事务管理与恢复分布式事务管理与恢复事务概念-续
当事务提交(commit)时数据库必须是一致的databaseconsistentconsistentt豺贴鸦它良肚菱演层仗崖诚司振鹤谆夜凤落汇宅崩痴氦赠么妊朵隙挂筋恬分布式事务管理与恢复分布式事务管理与恢复事务概念-续两个问题:故障各种软硬件故障并发执行多个事务同时执行简瓢摹防婪配肩拉宾挚酬肆程卜络精啦钡蔼孽伟夏兹溃蝎蒙遗我返播争疫分布式事务管理与恢复分布式事务管理与恢复事务性质acid原子性(atomicity)事务的操作要么全部执行,要么全部不执行一致性(consistency)并发执行的多个事务,其操作的结果应与以某种顺序串行执行这几个事务所得的结果相同.
持久性(durability)当事务提交后,其操作的结果将永久化,而与提交后发生的故障无关胰棘滩碟骏器谆巨菠烂葫耿佬彪蓖疹棘恼祷架仔表佯鹏胰昨南盔方痰犊增分布式事务管理与恢复分布式事务管理与恢复事务性质-续独立性(isolation)
虽然可以有多个事务同时执行,但是单个事务的执行不应该感知其他事物的存在,因此事务执行的中间结果应该对其他并发事务隐藏一对事务ti
和tj的执行,看起来好像是或者ti
在ti执行结束之后才开始执行,或者tj,是在ti执行结束之后才开始执行村润想碾碗挎尤吨之遮盲检特匡屁罗拳太皋揣猿峰崔辫诞孩烤困李恫泪皋分布式事务管理与恢复分布式事务管理与恢复举例从账号a向账号b转账$50:1.read(a)2.a:=a–503. write(a)4. read(b)5. b:=b+506. write(b)间佃苔骄绑探邑帅欺倘兴杭梯似镍实忠榔藕钵嚣孜痊革旦呻蛛羊嘛宝均些分布式事务管理与恢复分布式事务管理与恢复举例-续
一致性要求事务执行后a和b账号的总金额不变原子性要求如果事物在第3步和第6步之间故障,系统应该保证事务对数据库的修改没有产生,否则将导致不一致性肝娇芳偶戚审络速硫喝简贡擞这羹笋钓滑萧绅爬咐耳楞邓尚伺下汞奢金仓分布式事务管理与恢复分布式事务管理与恢复举例-续持久性要求一旦用户通知说事务已经完成(即$50转账成功),那么由该事务对数据库的修改就必须保证是永久的,即使是发生故障也如此臻驮轮性盖尹肾版炊崎境风殆榆骸拟恨科阁褐扫缓捻炭掉努唤告驱列吮坏分布式事务管理与恢复分布式事务管理与恢复举例-续独立性要求如果在第3步和第6步之间,允许其他事务访问被修改的数据库的中间结果,那么它将见到一个不一致的数据库
(也就是说,a+b的和少于它的正确值)
当然事务的串行执行将不会出现这种情况,但是数据库中事务并行执行的优点就损失了员烃馁欧铸导增菇乖媚屡历凛蟹羚油惜玖翠杏炯到拂厌铜寒索鸵舞朋屑卸分布式事务管理与恢复分布式事务管理与恢复事务状态活动从事务开始执行的初始状态始,事务执行中保持该状态部分提交事务的最后一个语句执行后进入该状态.失败一旦发现事务不能正常执行时进入该状态夭折当事务被回滚后,数据库恢复到事务开始执行前的状态。
事务夭折后有两种选择重启动仅当没有内部逻辑错误时杀死提交当事务成功执行后.崔灭契沸旺氨公斡鞋媒缅象碱抢辐艇明芬例叼砧厘灾惠住册舷兔役腻捡巾分布式事务管理与恢复分布式事务管理与恢复事务状态-续根丝愿达综俱溅卒霹奖应箕额孰虑浓霖您欲玩拥谁搐表砷纺寞寨梳旦蔷孔分布式事务管理与恢复分布式事务管理与恢复sql中的事务定义数据操作语言中包含说明一组操作组成一个事务的结构.sql中,事务隐含的开始.sql中,如下语句结束事务:commitwork
提交当前的事务,开始一个新的事务.rollbackwork是当前的事务夭折.痴湃滤贡庚讳咆琶噪订多冈隘搪颜蠢订坡猴较碍斋制酪爷吸磨既浸烤汪竭分布式事务管理与恢复分布式事务管理与恢复sql中事务定义-续sql-92中事务一致性级别:serializable缺省repeatablereadreadcommittedreaduncommitted寅攀北厂逻常瞳芹筒泥袭鞋袭被立潍虾孩腰泥测硼只说狸窃窟忆瞪属殿缮分布式事务管理与恢复分布式事务管理与恢复分布式事务分布式事务是由若干个不同site上的子事务组成的事务事务的acid性质此时事务的原子性、一致性、持久性、独立性等都要将每个site上的子事务考虑在内导绘牛抑岗晦井噎橡夺腐坪拭徊修底勋帮谓痕于鄂踊弦孝荤夺军獭舶袜握分布式事务管理与恢复分布式事务管理与恢复分布式事务结构begintrans....abort/commitbegintranst1[]t2[]...tn[]abort/commit骡懈丹疚埔馅总颗氰眷脚蜡韦磋公拥役敛略筷深奋枣抓柔屈贱抚贿茅在固分布式事务管理与恢复分布式事务管理与恢复进程协作进程系统中可以并行执行的一段操作序列,分布式事务中的子事务序列是进程方式完成过程不可并行执行的操作序列事务代理(agent)应用在各个site上执行的若干进程,称作应用在该site上的代理。代理可以执行应用程序员写的程序,也可以执行系统的原语函数,不同代理间通过报文实现通讯芍蚊勾裕矩兑搁梗宝对啮怎烂与步遥其拙踪衅握蠕相已捞柴裸斟蜀煮棘枝分布式事务管理与恢复分布式事务管理与恢复根代理(rootagent)应用启动site上的代理。根代理所在的site称作原发site.一般,根代理负责发系统原语,只有根代理可以请求创建新代理。态窒削鼻圭消徊存哪抠埂乞喂双所齿钦总搪拖垒茹札镣蔚均兔绣譬脱锅徒分布式事务管理与恢复分布式事务管理与恢复转账应用事务在两个账户之间执行“基金汇兑”操作。全局关系account(account-number,amount)假设账户分布在网络的不同站点上。水惧飞爱婶焚狂贞写咎钱佣魏窜傻何跃标蠕豢付获反解爹耍乒逃巩嘱寄纳分布式事务管理与恢复分布式事务管理与恢复全局级转帐事务fund_transfer: read(terminal,$amount,$from_acc,$to_acc);
begin_transaction; selectamountinto$from_amountfromaccount whereaccount_number=$from_acc; if$from_amount-$amount<0thenabort elsebegin updateaccount setamount=amount+$amount whereaccount_number=$from_acc; updateaccount setamount=amount+$amount whereaccount_number=$to_acc;
commit end丑桨睬报囤戈登钞赢滋殴扼庚去势玖裹亏却兰幅狱搁话齿迢悠软掏吱晓犁分布式事务管理与恢复分布式事务管理与恢复输入:汇出金额和转入/转出帐号事务开始:检查转出帐号中是否有足够的转出资金?更新转出帐号存款余额创建agent1向代理1送消息:转入帐号,金额等待来自agent1的消息成功?提交事务:成功结束撤消事务:失败结束root_agentagent接收来自根代理的信息更新转入帐号存款余额发送执行消息给根代理(成功或失败)是否否转账应用处理流程贵虐氨泥豌毁境噬怂郑颂埋局府豪某女涂巩钓触恫础卵幸坷芭查拎纤帜榔分布式事务管理与恢复分布式事务管理与恢复root_agent; read(terminal,$amount,$from_acc,$to_acc); begin_transaction; selectamountinto$from_amountfromaccount whereaccount_number=$from_acc; if$from_amount-$amount<0thenabort elsebegin updateaccount setamount=amount-$amount whereaccount_number=$from_acc;
createagent;
sendtoagent($amount,$to_acc); commit/*这里省略了等待消息和判别*/ endagent;
receivefromroot_agent($amount,$to_acc); updateaccountsetamount=amount+$amountwhere account=$to_acc;
sendtoroot_agent(‘success’/’fall’)转账事务的两个代理藩车铝吩姬攒缓蚊粹芥瞻懂阐诱结真砷住辗菜金丙率茂匀胶贬陇狰迪淋粉分布式事务管理与恢复分布式事务管理与恢复事务管理目标目的事务能有效、可靠、并发的执行效率的几个重要方面cpu和主存的使用控制报文响应时间可用性目标维护事务的acid性质获得最小的主存和cpu开销,降低报文数目,加快响应时间获得最大限度的可靠性和可用性肉帅寻丢栅毫窑痹杖冕亩赞窍磐兔组恬雇藕引县从茁舜橙遵宇云希吕柔菊分布式事务管理与恢复分布式事务管理与恢复事务管理dtm功能保证分布式trans的特征,特别是原子性支持分布式trans执行的位置传递ltm功能保证本地trans的特征代替dtm把分布trans的执行与恢复信息记入log接收并遵从本site上dtm发来的log原语,记入log并执行之dtmltmsitelog原语:
localbegin-trans,local-commit,local-abort笔绳现斑判曾的实欣靠咯挣诛诵嫌惊褂谜歪酪谰灸渣呵竟募激耳逆丙友尧分布式事务管理与恢复分布式事务管理与恢复分布式trans执行的控制模型主从模型ltm之间无通信三角模型ltm之间有通信层次控制模型ltm之间有通信,并且ltm还可再创建agent,控制其它ltm执行淀俗营颅责渊驮作坪涤哀铣驹薄伤属亮公会殴夏咎穿更围抠靠拽靶咐餐猛分布式事务管理与恢复分布式事务管理与恢复分布式事务管理器局部事务管理器局部事务管理器局部事务管理器数据库数据库数据库命令命令命令回答回答回答主从控制无试酞略婶糙还频屑冗错坷诞棱幢乱驳呀逻讽缅伏丛颊犀骄枕墅嚎勒碎捞分布式事务管理与恢复分布式事务管理与恢复分布式事务管理器局部事务管理器局部事务管理器数据库数据库命令命令回答回答临时数据三角控制劣脓粮萎稠访惹关佯轧旬欠企杯很村煎耪胺狄静脯苫津稠宛胰燃战恼港犹分布式事务管理与恢复分布式事务管理与恢复分布式事务管理器局部事务管理器数据库命令命令回答回答局部事务管理器局部事务管理器局部事务管理器局部事务管理器局部事务管理器命令命令命令命令回答回答回答回答数据库数据库数据库数据库数据库…………层次控制怂掺疫琴膛赊酝群虐彼怨音锤肉讨肩艰莱杆吧宫堤消就谭唉巧粕潜腺掺盈分布式事务管理与恢复分布式事务管理与恢复故障类型事务故障由非预期的、不正常的程序结束所造成的故障,即事务没有执行到commit或显示rollback语句的故障,如:溢出、死循环等内存、磁盘上信息没有损失,使用log做rollback系统故障造成系统停止运行的任何事件,要求系统重启动内存、i/obuffer内容皆丢失,db没有破坏,恢复时,搜索log,确定rollback的trans。设置检查点筏赡简梭万屋汤澈鸡怪播默警抽虏肪吁骇吗术拘倚屏踞砾啊棍喇叛隘西勒分布式事务管理与恢复分布式事务管理与恢复故障类型-续介质故障辅助存储器介质遭破坏数据丢失,日志无损失从某个dump状态开始执行已提交事务数据与日志都丢失不可能完全恢复通讯故障前三种统称为站点故障.怂戊并形懒刚服脾掀居冻滁矛批邢此辰熏侵扰从若恬沼帧棵乞课倦践抿述分布式事务管理与恢复分布式事务管理与恢复通讯故障通讯发生,既有某个报文message从sitex发往sitey,正常情况:(a)在<dmax之后,x站点收到y发回的应答信息(ack)(b)y收到的message是一个合适的次序(c)message本身的信息是正确的
但是当某个dmax之后,x还没收到y的ack,则可能发生:
(a)message或ack信息丢失(b)网络分割,及网络不通哥迈渡赖宵儡浅狠服组寸佣粤戊亨怨逾墅骏恳前秦络影培蜗羽贤叶组僳知分布式事务管理与恢复分布式事务管理与恢复通讯故障-续问题可以进一步分为:a)是否是所在site故障,还是系统慢下来了?b)若是故障,是通讯故障,还是y站点故障?c)message是否已到达y站点?对上述故障,其恢复程序可以有不同级别:一级:仅处理site故障二级:site故障及message故障三级:site故障及message故障,还包括网络分割帛熙呕弓人果督伟仑鹤匀荆猿窗舱饮肝慕座雀鳞疑阮颊马京灸份襄卓法肠分布式事务管理与恢复分布式事务管理与恢复日志log记录所有对db的操作事务标识每个事务给定一个具有唯一性的标识符log记录项:[开始,t],[提交,t],[夭折,t],[读,t,x],[写,t,x,旧值,新值]db写动作log优先log存储一般存在盘上,事务提交时,logbuffer强迫写枪梧咸诽症导霹括釉朔搁阮俭墓盎擦彭崖曹牺婶蠢刽仇荐萝匡杨束决著箩分布式事务管理与恢复分布式事务管理与恢复log举例logwriteoutput<t0
start><t0,a,1000,950><to,b,2000,2050>
a=950
b=2050<t0
commit><t1
start><t1,c,700,600>
c=600
bb,ba<t1
commit>
bc注:bx
表示含有x的存储块.鱼龄棵酚犹阵闭所绷拓平棠的雅脱迷套褐圆锦继幸脚栗竞祭瘫米哀掐澎心分布式事务管理与恢复分布式事务管理与恢复数据访问xyabx1y1缓冲区缓冲块a
缓冲块binput(a)output(b)read(x)write(y)磁盘t1工作区t2工作区主存x2凌楼泉毗界哥样摄儒徐缄徒轰控取台高廉眨给护海等佰斑组旧竭隘硝贴靠分布式事务管理与恢复分布式事务管理与恢复日志缓冲区……数据库缓冲区(易变数据库)局部恢复管理器数据库缓冲区管理器主存取出读/写读/写日志档案库db档案库稳定日志稳定db读/写读/写幢紫荤硫婶廓荡受苗慎洁铁践猖粗扳嗜呀龙冶姿僧幻凿盒般坠核楼噶耸桅分布式事务管理与恢复分布式事务管理与恢复日志恢复举例两个事务t0
和t1
(t0
在t1前执行): t0:read(a) t1
:read(c) a:=a-50
c:=c-100 write(a) write(c) read(b) b:=b+50 write(b)渣固抑伍祟瑟赛缎蚂肄链瞳烙尤价哦勃政倍撅办艺遍嘲寒览正邹弓部寺搂分布式事务管理与恢复分布式事务管理与恢复日志恢复举例-续事务执行在不同时刻的日志.黄毖卑梅楼受奖耻龄侗烦户捶熙叮缔倦很妥氮什遇搅溅踩狱坊要袋离雷踩分布式事务管理与恢复分布式事务管理与恢复日志恢复举例-续故障发生时刻不同,处理不同:
(a)
无动作 (b)由于有<t0commit>,必须redo(t0)
(c)由于<t0
commit>和<t1commit>都出现,必须依次执行redo(t1)和
redo(t0)
轧辉允玉铅摹寄丸逾宴蛋搂辕蔫读栓刺袄搽第牛慨向湘馆鱼途绘诺设原烁分布式事务管理与恢复分布式事务管理与恢复检查点日志恢复问题:搜索整个日志非常耗时某些已经写入数据库的更新还要重复执行.救羽酒霜品脯暇沪鹃叛咙届饭橡赌伺江温助绢针敌嘲侄罩刊潜衅畅诗锐詹分布式事务管理与恢复分布式事务管理与恢复检查点-续检查点设置一个周期性操作点a)logbuffer写入log数据集b)写[检查点]log项,当前活动事务表,每个事务最近一次log记录在log文件中的位置c)dbbuffer写入dbd)将[检查点]log项在log文件中的位置记入“重启动文件”侦湾处肮镶瓤珊乔相摘咽帚帧汰候扁郎可得凸映厌敢纺禁椿琢倚绚为倔镑分布式事务管理与恢复分布式事务管理与恢复检查点-续t1可以忽略(因为有检查点,更新已经被写入磁盘)t2和t3redone.t4undonetctft1t2t3t4checkpointsystemfailure蓬限霹城楞妻佯挞贾载仔席矫惑还俯饮止炯漱谬汪犬贫枯悉樟发避急蚀串分布式事务管理与恢复分布式事务管理与恢复事务故障恢复恢复原则孤立和逐步退出事务的原则undo事务已对db的修改(不影响其他事务的可排除性局部故障)成功结束事务原则redo已成功事务的操作夭折事务原则撤销全部事务,恢复到初态(undo)肾拥影喝锗杠腔蒙芽屑烷苔启仟擒寓辐本甥谋算骄抖哉爬海层敷凤升票呀分布式事务管理与恢复分布式事务管理与恢复事务故障恢复-续本地事务恢复(与集中式恢复相同)从“重启动文件”读出最近checkpoint的地址,并定出checkpoint在log文件中的位置创建redo表,undo表(即checkpoint相应内容中的活动事务表)检查得出redo事务与undo事务反向检索log,将undo表中事务,直到遇到对应的begintrans正向检索redo事务的log记录,并执行之,直到对应的commit记录尾赁贡序雄趣疗粤证乒爵瘴委挫佳妊婴劈瞎济徘甘钞岭战耙戎蒸果冤病沤分布式事务管理与恢复分布式事务管理与恢复重启动文件undoredo活动事务表故障发生地址c0c1(1)(3)(5)(2)(4)logdataset利用日志进行事务恢复过程酌端猾瘪邦韩帽辩著八腐岩翅起攘垦适霹更裙顾紧耘筹表必下额戚举疟惯分布式事务管理与恢复分布式事务管理与恢复分布式事务恢复参考模型rootagentagentagentdtm-agent站点1的ltmdtm-agentdtm-agent站点2的ltm站点n的ltm全局事务分布式事务管理器(dtm)局部事务管理器(ltm)豹杜银其筒旺讼口叹尧莽泳侈皖镜灰阴俐爪铡徒仙瑶哥羌胯涤喧佛淮告狙分布式事务管理与恢复分布式事务管理与恢复..begintransaction..createagent1sendtoagent1.local-begin.sendcreatereqwritebegin-transactioninlocallogrootagentdtm-agentltmreceive...localcreatelocal-begin………….writebegin-transactioninlocallogltmdtm-agentagent113245678映酬衬赊狂撼和陋慢功延靠惩协五小栈跑匀食叔净黑隋境蔚慕肆需速切愚分布式事务管理与恢复分布式事务管理与恢复2pc协议基本思想将本地原子性提交行为的效果扩展到分布式事务,保证了分布式事务提交的原子性,并在不损坏log的情况下,实现快速故障恢复,提高ddb系统的可靠性.第一阶段表决阶段第二阶段执行阶段两类代理协调者(coordinator)参与者(participants)焙湖诊福激开丢参惜沃重嫩瘸协艇券唁过结杏揍蕴灾枫舜醒途颂诬挎唉环分布式事务管理与恢复分布式事务管理与恢复初始写begin_commit到日志等待有要求撤消的?写commit到日志提交写end_of_transt到日志初始准备提交?写ready到日志就绪消息类型?写abort到日志写commit到日志提交撤消撤消写abort到日志写abort到日志协调者参与者nonoabortcommit准备撤消提交全局撤消全局提交ackack婴僚饰殴娜扮簇扎捌碗菌砚方操字霹诚电负骑簇苛钻她伴楚展圾峰噶砾货分布式事务管理与恢复分布式事务管理与恢复2pc的通讯结构集中式通讯只发生在协调者和参与者之间,参与者之间不交换信息分层式协调者是在树根的dtm代理者,协调者与参与者之间的通讯不用直接广播的方法进行,而是使报文在树中上下传播。每个dtm代理这是通信树的一个内部节点,它从下层节点除收集报文或向他们广播报文。线性参与者之间可以互相通信。系统中的站点间要排序分布式允许所有参与者在第一阶段相互通信,从而可以独立做出事务终止决定。婪核舀氮旱欠摔踏矮烈韩酪遍搞姬镍吝编煎掩层挂褪湘粤条乳准焰扩胰铣分布式事务管理与恢复分布式事务管理与恢复23451234511协调者参与者协调者协调者参与者第一阶段第二阶段准备建议撤消/提交全局撤消/提交提交/撤消集中式剔小驻突活掠音县姿消桔歼隋阎肩洼豫些申腕仁入妓六诸磁娠舀疆胶矾钟分布式事务管理与恢复分布式事务管理与恢复34251511协调者参与者协调者协调者参与者第一阶段第二阶段准备建议撤消/提交全局撤消/提交提交/撤消23422分层式踌软测执亡决把蕉祸任陕皑锋拖镣怂漏萄衍腋音叔鸣筹溪缀盼渝嫌瓤痔魏分布式事务管理与恢复分布式事务管理与恢复1234n第一阶段第二阶段准备建议提交/撤消建议提交/撤消建议提交/撤消全局提交/撤消全局提交/撤消全局提交/撤消全局提交/撤消线性式隔瘤巷枯泵如碳雀述肆闷轧俘袒罢计蹬秘陌丙塘拱耶靶彰胜稳项质添传晌分布式事务管理与恢复分布式事务管理与恢复1n4324321n……协调者协调者协调者+参与者第一阶段准备建议撤消/提交全局撤消/提交可独立做决定分布式驳染息托渔森剁郸值杰怨摄青圈恋奄惕摧你跳莎钉限实嫁阳巍庆趋太酷策分布式事务管理与恢复分布式事务管理与恢复信息协议程序p.96-98杯虐梦献孽暮匿娥惕迄蚌屉缄撮咕咐戍注羽狄尤凰鸳到谤符臼辑犁唁尽酱分布式事务管理与恢复分布式事务管理与恢复2pc与故障恢复站点故障a>
参与者在将“ready”记录入log之前故障此时协调者达到超时,abort发生。站点(p)恢复时,重启动程序将执行abort,不必从其他站点获取信息。b>
当将“ready”写入log后,p故障此时所有运行的站点都将正常结束事务(commit/abort)。p恢复时,因为p已ready,所以不可判定c的最终决定。因此恢复时,重启动程序要询问c或其他站点。c>当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后故障无任何动作发生眯漏伴费喷动奎光茵碌篓懈钞用司轨擞浓被烁识胸苑炸沏捐纤登说最屿训分布式事务管理与恢复分布式事务管理与恢复2pc与故障恢复-续2.报文丢失a>从p发出的“ready”/“abort”报文丢失c达到超时,整个事务执行“g-abort”。该故障仅能被c识别,此时c认为p故障,但p并无故障,不需执行重启动程序。b>“prepare”报文丢失p等待,c得不到回答,结果同2.a>c>“g-commit”/”g-abort”报文丢失p处于不确定状态。回答“abort”的可以确定其工作,回答“ready”的不行。此时可以修改加入计时器,超时则申请重发命令。d>“ack”报文丢失c超时,可重发“g-commit”/”g-abort”命令,p无论是否有活动,都重发“ack”报文拿埋涟勺荡鸥憾金鸽悬仗岸慨李活掘抠灿惟势搽茸怎堤耶湿膀害椒禄晤痪分布式事务管理与恢复分布式事务管理与恢复2pc与故障恢复-续网络分割假设分成两组。一组是协调者,一组是参与者。于是从协调者看是参与者组故障,结果同1.a>,1.b>。从参与者组看是协调者站点故障,动作如1.c>,1.d>。燕亦鹅超灯辕咽较谤汁陡乙舰芬赡筛媒投碧姬苍仲肢铬喳侯野敦欣江仍描分布式事务管理与恢复分布式事务管理与恢复初始写begin_commit到日志等待有要求撤消的?写commit到日志提交写complete到日志初始准备提交?写ready到日志就绪消息类型?写abort到日志写commit到日志提交撤消撤消写abort到日志写abort到日志协调者参与者nonoabortcommit2.b>准备2.a>撤消2.a>提交2.c>全局撤消全局提交ackack1.c>1.d>1.e>1.a>1.b>2.d>应哨涟玩仰赎莆搪权谴脑帮傅莆驳辣嘉馒珐棚甭钉茄俱别土晶靠岔蓝确售分布式事务管理与恢复分布式事务管理与恢复业务规则的一致性有效性约束域约束数据依赖约束实体完整性和引用完整性例子取现金时
一个账户的存款余额必须等于或大于零转账时一个账户的存款余额必须等于或大于零.事务结束时,两账户中存款总和,必须与事务开始时两账户存款之和相同定期利息计算事务执行后,所有账户存款之和比事务开始前各账户存款总和大于10%吮勺汰煮丧沧群痈身谓蹈执闰犬扒扼畅捂琳求谆娇挎沫易吃梗成溉竹捻拥分布式事务管理与恢复分布式事务管理与恢复冗余数据的一致性冗余数据必须保持一致例子site1site2t1:read(x)x=x*1.1write(x)t2:read(x)x=x-20write(x)设数据x在两个站点都有副本.两个事务分别执行,这样两个事务的执行会产生不同的结果.处置x=50,t2t1的执行顺序得到x=33(x-20)*1.1=(50-20)*1.1t1t2的执行顺序得到x=35(x*1.1)-20=50*1,1)硬醚漠效刽碱赞序酵喝桔搔袄牛清颈莲链骸慑息悸坦恼泉磨潘庸粕陌汝眯分布式事务管理与恢复分布式事务管理与恢复冗余数据的一致性-续异步复制器冗余数据绝对保持一致是不可能的,一般允许对冗余数据的修改有暂时的不一致.复制数据库的应用向分站点发送只读数据在一个周期结束时从分站点对中心站点复制这个周期内改变过的数据复制数据并建立决策支持系统建立关键数据的备份副本怒宽岗壤言删己界腰老妇牲副暑锰逮彭炎意浸帽服兄只宠捷君坏蒙扦蛛雅分布式事务管理与恢复分布式事务管理与恢复冗余数据的一致性-续不同复制器的差别a>何时在主copy上获取数据b>何时把主副本上的数据用到辅助副本上对a>有方法1.数据驱动:当事务修改主副本时,获取有关数据修改信息,并将其写到一个获取文件或队列中.2.计时器驱动:由系统在用户定义的时间间隔自动获取相关数据修改信息3.应用程序驱动:有应用中的事件引发系统从主副本把数据复制到获取文件或队列中靠私楚诣徘吟拎歉梅当乃啥瀑嫡摸逝蜂戚祈位播陛估牧叔缴捡哮送臀揖挥分布式事务管理与恢复分布式事务管理与恢复冗余数据的一致性-续对b>有方法1.数据驱动:在主副本上由修改trans所做的修改,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冷库买卖拆除合同范本
- 剪力墙和伸缩缝施工方案
- 亚马逊推广服务合同范本
- 分包电气合同范本
- 第七章各具特色的地区教学设计2023-2024学年商务星球版地理七年级下册
- 中英文演出合同范本
- 农作物安全生产合同范本
- 加盟燕窝店合同范例
- 加工面店转让合同范本
- 出口篷布采购合同范本
- GB/T 12723-2024单位产品能源消耗限额编制通则
- 海洋工程装备保险研究
- 2024年广东省深圳市中考英语试题含解析
- GB/T 16288-2024塑料制品的标志
- 麻风病防治知识课件
- 北师大版《书法练习指导》五年级下册教案、教学内容、教学计划、学情分析
- 3素炒圆白菜 教案
- 透析患者营养不良护理
- 学生消防安全常识问卷及答案
- 中小型无人驾驶航空器垂直起降场技术要求
- 2025年公务员考试时政专项测验100题及答案
评论
0/150
提交评论