欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    《再论事务处理》PPT课件.ppt

    • 资源ID:5628764       资源大小:288.49KB        全文页数:70页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《再论事务处理》PPT课件.ppt

    1,第十一章 再论事务处理,2,数据库和事务(1),银行卡应用每天大约有20Million的卡来自10Million多的贸易商的事务通过2万个银行处理,涉及数Billion美元的事件仅有记录在网上的数据库中被保存 数据库的正确性,安全性,可用性,以及事务的正确性和其执行性能,对于整个银行卡业务至关重要,3,数据库和事务(2),事务事务是对物理和抽象的应用状态上的操作集合事务请求/应答事务程序数据库存储的是描述企业当前状态的信息,某个事件发生时,事件引起的状态改变记录到数据库中.使用DBMS,数据库的改变是通过称作事务的程序实时地修改事务是与合同法等同的计算机概念,4,数据库和事务(3),事务处理系统管理事务并控制其对DBMS的存取称作TP Monitor.事务处理系统(TPS)一般由TP Monitor,一个或多个DBMS,一组含有事务的应用程序组成,数据库是TPS的中心交互事务 处理的时候用户等待应答批处理事务 提交过后可能过一会儿再处理,5,TP系统与应用的结构,表示管理器,工作流控制(路由请求),数据库系统,前端(客户),后端(服务器),终端用户,事务程序,请求,6,系统特征,典型情况,每个应用 100 事务类型事务的大小也非常不同.通常,0-30 磁盘访问10K-1M 指令执行2-20 消息大事务举例:飞机订票系统150,000 活动显示器数千个磁盘驱动器峰值时,每秒 3000 事务,7,只有交互事务,小型/简单,中等,大型/复杂,性能/事务,指令/事务磁盘I/O/事务本地消息(字节)远程消息(字节)代价/事务/秒tps峰值/站点,100K110(5K)2(300B)10K$/tps1000,1M10100(50KB)2(4KB)100K$/tps100,100M10001000(1MB)100(1MB)1M$/tps1,交互式事务典型的性能指标,8,TP Monitors,创建、执行和管理TP应用的软件产品将应用先抽象为处理一个申请,然后将该申请扩展到一个大的分布系统包括应用程序接口(API),和程序开发及系统管理工具,9,事务处理性能,最小代价下的响应时间以及吞吐量涉及的选择多大的存储量每个系统需要的处理和DB功能系统如何用通信网络连接即使知道单个组件的产品性能,但是对整个系统的性能也难以预测,因此,商家需要一种方法预先预构件系统的性能,使得顾客可以比较,10,事务处理测试基准(1),估算一个TP系统性能的测试事务处理性能委员会(TPC)制订了3个基准(A,B,C),每个基准定义标准的事务程序,通过在一系列参数如:工作负载、DB大小、响应时间保证等条件下的吞吐量来刻划系统性能。,11,事务处理测试基准(2),性能指标最大吞吐量(tps),以前用每秒事务数,现在用tpm,每分钟事务数事务费用 购买单价表中硬件,软件,以及5年中商家提供的维护费用计算,衡量系统的性价比(美元/tps或tpm,12,事务处理测试基准(3),TPC-A 第一个tpc基准简单的银行业事务,100字节的输入信息,4个数据库更新,1个200字节的对终端输出信息。TPC-B 把TPC-A的终端,网络和2/3的长期存储器去掉,只为数据库设计的基准测试,其性价比一般比TPC-A好十倍,13,事务处理测试基准(4),TPC-A,TPC-B(1989年前后)模拟自动取款机应用,仔细地测试TP系统中的主要瓶颈,对商家消除这些瓶颈非常成功,以至于到1994年几乎所有的DB系统在TPC-A/B基准上都运行得非常好,所以这两个基准已不再使用,替而代之的是TPC-C两个基准在同一个事务程序上运行,但是TPC-A包括终端和网络,而TPC-B不包括,TPC-B仅强调DB,类似于批处理,TPC-A包括人在终端前的“思考时间”,14,事务处理测试基准(5),TPC-C 基于批发供应商的订购应用比TPC-A复杂大约十倍,可能取代TPC-A和TPC-B成为一个重要的性能指标5种类型的事务New-orderPaymentOrder-statusDeliveryStock-level可测试的性能:延迟事务执行、访问二级Key、事务夭折等,是更实际的基准,15,系统Style(1),TP是一种应用,但TP也可以是系统,也即可以构建软件组件使其成为TP应用需要的形式,与如下几种常见的系统比较批处理系统 60-70年代分时系统 设备连到OS,经常地与显示交互,PC时代之前指标:系统容量,MIPS,联机用户分时系统很少考虑 可用性和原子性分时系统的处理模式不定,但TP系统的应用模式不变,16,系统Style(2),实时系统 与TP系统相同又可预期的周期峰值负载,实时系统通常不需要原子性和持久性,只是简单地要求尽可能地快C/S系统 与TP系统类似,其OS的内部结构与支持它们的通信系统都很类似,TP就是最初的具有哑终端的C/S决策支持系统 有报告程序或Ad hoc 查询访问数据,其访问的数据可以不是当前的数据(TP要求是当前数据)设计一个系统去实施上述类型处理称作系统工程,17,TP应用举例(1),ATMTP应用先锋DB由4个表组成:AccountBalance 3000 tuple/ATMHotCard 列出所有问题ATM卡账号 100tuple/ATMAccountVelocity 每天取款数 150/ATMPostingLog 300 tuple/ATM 数百个ATM的网络,DB大小约20-50MB,一百万客户两类事务Deposit or WithdrawalRequestBalance负载高峰是中午,1Trans/m/ATM,5磁盘I/O/Trans,18,ATM 应用结构,Workflow Controller,CIRRUSAccounts,Credit CardAccounts,LoanAccounts,Workflow Controller,ATM,ATM,ATM,ATM,ATM,ATM,银行 1,银行2,银行500,CheckingAccounts,19,TP应用举例(2),Stock Exchange 连接10个股票交易所的复杂网络系统,所有经纪人可以在全国各地分布实时地,同样安全地进行交易数据库表User 1000 tuple 64K/tuple 64MBStock 1000 tuple 100K/tuple 100MBBuyOrder和SellOrder 25000tuple 20K/tuple 500MBTrades 60000 tuple 5K/tuple 300MBPrice 500000 tuple 800b/tuple 400MBLog 200000 tuple 320b/tuple 640MBNotificationMessage 150000tuple 4K/tuple 600MB整个数据库2.6GB主要事务GetStockServerLogResuestExecuteTrade日常最高峰140000order,每秒最高负载产生大约每秒180磁盘I/O,每秒需要300million指令执行,20,股票交易应用结构,StockDealer 1,StockExchange 1,StockExchange 2,StockExchange 10,Securities 1-20,Securities 91-99,StockDealer 10000,Workflow Controller,Workflow Controller,21,现代DB和TPS的特征(1),特征数据库是关系型DB可以包含大多数媒体对象,如图片,声音等联机系统不是批处理系统允许并发存取很多系统涉及分布计算,分布数据,22,现代DB和TPS的特征(2),对DB和TP的需求高可用性高可靠性高流通量低响应时间长生命期 事务处理系统是复杂的系统,不易替换,因此要设计成单个硬件或软件模块可以被新版本替换,而不影响系统环境安全,保密,23,DB和TPS的主要实现者与支持者,与设计与实现相关的人员系统分析员DB设计者应用程序员项目管理员(Project Manage)8万个IT项目,仅有16%是成功完成(按时,按计划,按经费),失败原因几乎总是缺乏有经验的项目管理对于大公司,比率下降到9%,平均完成时间是计划时间的222%,平均预算是计划的189%,31%的项目在完成之前被删去,24,DB和TPS的主要实现者与支持者,与操作TPS相关的人员有用户数据库管理员系统管理员(System Administrator)系统体系结构 确定哪些硬件,软件模块被连接配置管理系统状态,25,平面事务模型(1),平面事务Begin_Transaction();SCommit;局限性举例 预定从纽约到黄山的旅游线路,顺序执行的动作如下预定纽约 北京游线预定北京 合肥游线预定 合肥 黄山游线,26,平面事务模型(2),但是,在定 合肥 黄山票时发现没有飞机座位,于是这种事务可以有多种选择Abort,然后用子事务安排从杭州 黄山 的线路,该选择使得从纽约到北京的计算以及产生的预定都丢失,而后续的事务将发现原来的飞机上没有了预定的座位删除从北京到合肥的预定,然后预定从杭州 的航线,这时需要undo某些计算由于黄山不处理国际航线,因此旅行者必须改变计划,可能要预定旅馆和汽车,因此,事务要存取多个数据库服务器,但是仍然要保持事务的ACID性质,27,平面事务模型(3),旅行预定不仅仅涉及航线的预定,还要打印和邮寄票据,这时需要一个事务可以创建另一个事务,并且事务可以在后来的时间里再执行银行在每个季度末邮寄利息。假若有10000笔帐,那么就有10000个事务要执行。问题是在两个成功的事务之间,数据库是在一个不一致的状态,假若此时有人要计算汇总。这使得汇总将有误差。好的方法是将10000个事务组成在一个事务中平面结构给设计者的选择:all-or-nothing在事务中提供结构,28,分布式事务模型(1),分布式事务模型分布式事务可以看成一个树,树根初始化一组子事务,各子事务又可以初始化附加的子事务,这一般结构上又有多个选择特定子事务的子节点可以或不可以并发执行一组子事务的父节点可以/不可以并发执行,并发执行下,其父节点可以或不可以与它的子节点通信某些仅有根可以申请Commit,有些允许任意一个子事务都可以申请Commit,是事务设计者的责任去保证仅有一个子事务可以做这个申请.,29,分布式事务模型(2),两个极端层次模型事务中不允许并发。过程调用是这种模型的例子。TP Monitor 提供一个过程调用形式是 事务远程过程调用(TRPC)Peer模型并发在父与子,以及子之间发生。父与子间的层次关联被极小化,一旦建立,子与父就Coequal,或Peer of。特别是父与子可以对称通信,任何参与者都能申请事务Commit。Peer-to-Peer通信是Peer模型中的自然通信模式,一对子事务显示地建立连接,然后发送和接收报文。TP Monitor 一般支持这种通信,30,嵌套事务(1),递归是计算机科学中很重要概念 事务也如此事务可以有子事务,子事务还可以有子事务,etc.嵌套事务产生保留点(savepoints)保留点允许顺序事务部份地回滚 两个保留点之间的工作是子事务嵌套事务允许并发事务树,每个子事务可以被夭折,31,嵌套事务(2),嵌套事务不同于分布式那种全有/全无方式,嵌套的子事务可以独自Abort,而不要Abort整个事务,但是嵌套事务作为整体,仍然是全局和原子的嵌套事务的事务和所有它的子事务可以看作是一棵树(Moss 1985)嵌套事务和其子事务可以都在一个站点上执行,32,嵌套事务(3),每个事务和子事务用Start 和 Commit 或 Abort括起.如果程序不是执行事务,则Start 创建一个新的 top-level 事务如果程序是在事务中执行,则 Start 创建一个子事务.例-BookTrip 是一个顶层事务它调用3个子事务,BookFlight,BookCar,和BookHotel,每个都是由 Start 和 Commit/Abort 括起.,33,嵌套事务(4),顶层事务的 Commit 和 Abort 具有通常语义如果子事务aborts,则它的所有操作和子事务都撤销.提交前,子事务的更新只被本子事务看到子事务 S 提交后,S更新才被同一个父事务的其它子事务感知.E.g.BookFlight 提交后,它的更新才被BookCar 和BookHotel 感知.,34,嵌套事务(5),嵌套事务的语义父可以顺序的创建子,一个子结束后另一个开始,也可以指定一组子并发执行,暗示父与子不并发子事务(以及它的所有后继)与它的并发的兄弟间都是作为一个独立体执行子事务是原子的,子事务的提交和它的持久性是有条件的依赖于父事务的提交子事务Abort 它的作用如同是它没有执行任何DB操作.状态被退回给父事务,父事务可据此执行合适的动作子事务不必是一致性的,但是嵌套事务作为整体要一致,35,T1,T2,T3,T4,T5,T6,T7,T8,旅行线路预定事务嵌套结构,总事务 纽约 黄山,纽约 北京,北京 合肥,合肥 黄山 若Abort,北京 黄山 知T6夭折后也夭折,北京 黄山,北京 杭州,杭州 黄山,T1提交 其效果是由T2,T4,T7和T8组成一个独立的,原子的整体,36,应用,并不如想象的那么多见 将 ACID 性质操作构造为 具有 ACI 性质成分是OO 应用的好的抽象对象 调用子对象是并行DB 系统的好的抽象操作被分解为具有 ACI 性质的子操作,37,实现,被嵌套事务访问的资源管理器需要特殊的能力子事务start 从而知道那些操作与给定子事务相关在 RM 上的每个操作必须有子事务的标识子事务 abort 撤销给定子事务的更新子事务 commit 使子事务的更新对其他子事务可见(子事务的父继承它的 locks)子事务夭折的实现影响日志算法和 2PC 的实现,38,商业支持,嵌套事务在1980s是研究热点Transarcs Encina TP monitor 支持嵌套事务,具有 Transarc RMs.商用 DB 系统不支持嵌套事务.没有标准的 2PC支持,39,多级事务(1),多级事务嵌套式事务的一般化和更自由版本允许子事务先提交,也就使单方面回滚子事务的修改成为可能补偿事务例:学生注册系统一组对象课程 Section一组操作,允许学生在Section间移动测试(test)和增加操作 TestInc减少操作 Dec移动操作 Move(Sec1,Sec2),40,学生注册应用的多级结构L0层:读/写DB页面 L1层:SQL语句 L2层:面向应用(子事务),Move(Sec1,Sec2),TestInc(Sec2),Sel(t2),Rd(P2),Upd(t2),Rd(P2),Wr(P2),Dec(Sec1),Upd(t1),Rd(P1),Wr(P1),L2,L1,L0,41,多级事务(2),特点父事务创建一个子事务,要等待其子节点完成事务的所有叶子节点在同一层仅仅只有叶子子事务访问数据库多级事务提交一个子事务T(不问在那一级)要Commit,那么该子事务对数据库的修改(在那一级抽象层)可以对与T同一层并发的事务见到该提交策略影响事务独立性和原子性,42,多级事务(3),多级事务的撤销子事务已提交,并发的事务已看到这个修改的结果例:有事务T1和T2如下T1:TestInc(Sec2)Dec(Sec1)AbortT2:TestInc(Sec3)Dec(Sec1)Commit这里Section的总数值被减了两次.如果在T1夭折时仅仅简单地将t1的值重新存入,那么T2的作用将丢失,数据库是在一个不一致状态.补偿事务 Dec逻辑地撤销一个成功的TestInc,Inc逻辑的撤销Dec.,43,多级事务(4),某些申请不能作为一个事务处理,由于执行时间太长(引起锁 contention)资源不能支持相容的2PC协议.事务运行时间长,由于需要与用户I/O 没有可用的人员或机器(旅馆预订系统,需要管理员确认申请)需要现实世界中长时间的动作(在获取保险之前要得到相应的评估确认)子系统的事务必须是满足 ACID(给出订单,调度货运船只/车辆,报告订货完成),44,将应用组织成多级事务(1),链接事务目录定购应用,一个程序由三个事务序列构成:定购,装货,结账.事务执行之间,程序在局部变量中保存定购的货号和定购人信息,并用这些信息做计算使用链接优化,自动地在序列中前一个事务提交后启动一个新事务Begin-Transaction();S1;Commit();S2;Commit();,.Sn-1;Commit();Sn;Commit();,45,将应用组织成多级事务(2),当设计一个长事务时,链接可以从不同角度观察长事务需要同时更新银行所有的100万条账目时,将所有更新操作组织成一个平面事务,“仅一次”的语义被保证,但是重新开始的代价却高的不可接受.假设100万条的更新集合被分解为100万个单一(链)事务,这是无论什么时候发生失败,只需要回滚最后一个事务.,46,将应用组织成多级事务(3),SagasGarcia-Molina 和 Salem 1987年提出的事务模型向系统提供类似于事务序列的小批量运行支持链接通过补偿事务实现原子性Chain事务中的每个子事务都设计一个补偿事务,若Chain事务Ti有子事务Stij 1 jn组成,Ctij是Stij的补偿事务,Ti执行的两种形式STi1,STi2,Stin(成功执行)Sti1,Sti2,Stij,Ctij,CYi1(若Stij+1时故障),47,将应用组织成多级事务(4),扩展的Trans传统的Trans概念和ACID性质对于执行时间短,存取数据项相对较少,而且使局部DB是很有效很多应用,如:CAD/CAM,办公自动化,软件开发环境,事务可能持续数小时或数天扩展的一个公共思路,事务不是ACID性质,48,工作流(1),多级事务申请称为工作流(workflow)专用的工作流产品有IBM Flowmark,Action,JetForm,Wang/Kodak,.特征描述组成工作流处理步骤的工作图语言,并具有步骤之间移动的预定条件组织结构和角色的表示(人工步骤可以由具有某个角色的人实施,具有复杂的角色求解过程)步骤跟踪,工作流执行在线定位自主工作流(ad hoc workflow),与电子邮件集成(case mgmt),49,工作流(2),工作流是企业中复杂处理的模型工作流中的任务集合必须按特定的偏序方法执行,任务不必是一个子事务例:目录定购系统中可以包含一个任务,该任务是由人工执行而不是计算机执行.目的是在装运前打包.扩展事务的泛化,更少关心数据库和ACID 性质,50,工作流(3),工作流中的每个任务都是由一个代理(Agent)执行.为了跟踪库存信息,代理可以是软件系统,为了打包货物,代理即可能是人工作流可以跨越一个特定的时间段有一组代理执行.例:目录定购系统中,装运和账目部门可能完全独立,使用不同的数据库系统,51,工作流(4),任务有物理状态:执行,提交,或夭折任务的完成产生某些逻辑状态,标明成功/失败,例如定购系统中,T4可能发现顾客的贷款率不好,这时该任务完成,但是产生一个逻辑失败状态工作流中的任务要合作,52,Update,TakeOrder,Remove,Package,Arrange shipping,ByAir,ByLand,Complete,Bill,T1,T2,T3,T4,T5,T6,T7,T8,T9,目录定购系统的工作流,53,工作流(5),一个任务产生的结果经常被作为另一个任务的输入,但是这种流不必与控制流相同例如,定购系统中,T1中获得顾客名字和地址,然后送给T4和T6,同时货物的标识送给T2和T3.然后T2送货物价格给T4.工作流模型也不必是ACID性质,54,T1,T2,T4,T3,T5,T6,T7,T8,T9,定购系统的数据流,55,工作流(6),工作流管理系统提供支持在设计阶段说明工作流,并且调度和监视工作流的执行工作流说明不关心任务的细节,而是关心任务序列方式和任务间数据流的方式工作流控制通过翻译它的说明涉及工作流的自动执行翻译时,关心的问题如下,56,工作流(7),角色,代理和工作清单任务活动状态维护过滤(Filters)可恢复队列当动作复杂,并且必须满足某组商业规则时,将该活动说明为工作流特别重要,57,队列式工作流管理,每个工作流步是一个请求发送请求给可以服务该请求的服务器队列服务器为工作流的下一步输出请求,58,工作流对原子性和独立性的侵犯,由于工作流如同多个事务在运行,它可能与其它工作流不可串它可能不是全有或全无式运行考虑由2 个事务,T1&T2,给出的资金转帐T1&T2 之间可能有冲突T1 故障可能会阻止 T2 的运行这些问题需要面向应用逻辑E.g.T2 必须要向 T1 发送 ack.如果 T1等待 ack 超时,那么T1会主动执行某些动作,如执行 T1 的补偿,59,自动补偿,在工作流声明中,对每个步骤要指明一个补偿。该声明称做 saga.如果工作流中止处理,则对每个提交的步骤反向运行补偿(如同事务夭折)必须确认每个补偿的输入可用(e.g.log it)并且该补偿确实可运行(强制约束直到工作流完成)概念仍然处于研究阶段,60,假会话,早期TP 系统产品的简单方法conversational 事务在执行期间与用户交互 这是用户和服务器间的顺序工作流.由于这个是长运行,因此其作为多请求运行由于有两个参与者,请求在这两者间传递请求带有所有工作流的上下文请求是可恢复的,e.g.send/receive 被日志或者请求被存储在共享磁盘区这是比队列更简单的方式,61,事务处理系统的体系结构,集中系统中的事务处理单个用户系统的组织集中式多用户系统组织分布式系统中的事务处理二层模型三层模型,62,表示层服务,应用层服务,DBMS,用户模块,终端,集中式系统,63,表示服务,表示服务,数据访问,应用服务,应用服务,事务支持,.,客户机,DB服务器机,64,表示,表示,数据访问,应用服务,事务支持,.,客户机,DB服务器机,应用服务器机,三层模型,65,扩展模型概述,15年来,研究如何抽象事务以扩展它的应用目前这些研究都还在进行,只有有限的成果被商业系统使用有很多文章讨论扩展的事务模型主要涉及 主动数据库(active databases)工作流模型(workflow models)设计事务模型(design transaction models)理论模型(theoretical models),66,主动数据库,SQL 系统支持 触发由谓词(WHERE clause)和动作组成与表上的动作相连(INSERT,DELETE,UPDATE)当操作运行时,检查触发的谓词是否为真,真时运行该触发是 Event-Condition-Action 规则的广义化这是多事务(multi-txn)请求的基本机制,因为它封装说明了txns 间如何互相影响.,67,工作流模型,组合数据流程序和原子性模型的目的(补偿,下一步骤的预设条件,可恢复性)E.g.ConTract 模型 Wachter,Reuter每一步骤(事务)后的工作流状态信息是可恢复的故障后,活动工作流能够重 开始 和继续运行存储数据库不变式确保工作流是前向可恢复,68,设计事务(1),设计人员之间的并发设计活动必须协作这类应用的事务模型一般要打破 ACID 规则。但是这样并不非常合适.更好的方式可能是使用版本配置配置含有一组相关的设计对象,这些对象必须互相一致设计者检出一组对象到工作空间配置(可以是渐增方式)结束时,这一组对象被检回到新版的共享配置,69,设计事务(2),如果配置版本由于设计者的初始检查改变,则登录必须合并冲突的结果.(通常,乐观锁失效。不是夭折,而是合并不一致更新)工作空间配置代表长事务,70,理论模型,定义事务之间的相关性(相关组成更大的原子单位)提交依赖 如果 T1 和 T2 都提交,则 T1 首先提交强提交依赖 如果 T1 提交,则 T2 提交夭折依赖,终结依赖,.两个好的模型ACTA Chrysanthis,Ramamritham时态逻辑与有限状态自动机 Klein可以使用相关性写 txn 模型的显式定义,这样可以方便实现,

    注意事项

    本文(《再论事务处理》PPT课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开