《分布式事务》由会员分享,可在线阅读,更多相关《分布式事务(28页珍藏版)》请在金锄头文库上搜索。
1、分布式事务,杨庆跃、赵松涛、田红成、郭炜2002年12月26日,第12组,报告进度安排,事务基本概念、分布式事务特点(3分钟) 两篇论文中对分布式事务处理的改进(10分钟) 分布式事务服务系统的现状与展望(看情况),回顾一下事务的基本概念,事务是构成单一逻辑工作单元的操作的集合事务的ACID特性:原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持久性(Durability),事务的五个状态 :,其中:提交的或中止的事务被称为已经结束的事务,分布式系统中的事务:(简称分布式事务),分布式事务服务主要由两部分组成:对象事务服务:(提交协议+日志机制)并
2、发控制服务:(锁或时间戳或有效性验证),原子性(Atomicity) 持久性(Durability),一致性(Consistency) 隔离性(Isolation),论文1:事务管理中的性能分析Dan Duchamp. “Analysis of Transaction Management Performance.“ Proceeding of the 12th Symposium on Operating Systems Principles, December 1989, Litchfield Park, Arizona, Pages 178-190.,论文1:事务管理中的性能分析(2),
3、提出一个分布式事务处理的原型系统Camelot系统Camelot系统主要解决分布式事务处理中的性能问题,它关心怎样的设计使系统的性能得到提高研究的主要方面包括: 1、优化两阶段提交协议以减少分布式事务的写日志操作。 2、利用无阻塞提交协议加强容错性。 3、采用日志批处理改善吞吐量。 4、在RPC之外引入多播通讯机制以减少分布式协议的偏差。,论文1:事务管理中的性能分析(3),对两阶段提交协议的优化。传统的两阶段提交协议 Camelot系统采用的是假定撤销的两阶段提交协议(PA),并进一步进行了优化 优点:从属者的吞吐量得到提高从属者锁保持时间缩短,投票阶段:收到协调者发来的prepare T消
4、息强制写一次日志发Abort 或 Ready 消息 决定阶段:又 强制写一次日志,(省略),论文1:事务管理中的性能分析(4),无阻塞提交协议 目的:解决两阶段提交协议中从属结点的资源阻塞问题 策略:1。发送的消息中含有与该事务相关的结点列表。这样,在和协调者失去联系后,从属结点之间仍然能够继续通信2。从属结点不再等待协调者的中止/提交通知,取代的是最大时间延迟3。两个标准阶段存在一个复制阶段,提交之前确保复制成功4。在所有结点完成提交或中止之前事务管理器必须记住事务,论文1:事务管理中的性能分析(5),日志批处理 采用日志批处理或称组提交 的方式写日志。 通过延迟来换取吞吐量。这对那些需要以
5、磁盘来存储日志、提高吞吐量的系统很实用。,论文1:事务管理中的性能分析(6),CameLot系统的限制它主要从改进提交协议的角度考虑问题,没有涉及到系统恢复和并发控制。在该论文的摘要中提到利用多播技术减少协议不一致,但论文中却只是提了一下,没做具体阐述。,论文2:QuickSilver系统中的恢复管理NO.121 Roger Haskin, Yoni Malachi, Wayne Sawdon, and Gregory Chin. “Recovery Management in QuickSilver.“ ACM Transactions on Computer Systems, 6(1),
6、February 1988, Pages 82-108.,论文2:QuickSilver系统中的恢复管理(2),基本完成了一个分布式事务处理的原型系统QuickSilver要解决的问题:与分布式事务的恢复操作有关的问题,包括提交协议、日志和恢复。研究的主要方面包括: 1进程间通讯 2改进提交协议 3协调者失败 4日志和恢复,论文2:QuickSilver系统中的恢复管理(3),进程间通讯IPC 系统中加入通信管理服务Communication Manager(CM)作为远程调用中的路由和名字服务器。 当调用者和被调用者位于同一结点时,把参数直接传递过去。 当被调用者位于远程结点时,使用Remo
7、teIPC机制,论文2:QuickSilver系统中的恢复管理(4),论文2:QuickSilver系统中的恢复管理(4),改进两阶段提交协议,目标:以处理下列三种特殊情况: A事务调用图中出现环,即循环调用。 B从属结点投票后又有新请求到达。 C被“忘记”的事务重现。解决策略 由于时间关系不能一一介绍解决方法,基本思路有两个:1.改进两阶段提交协议提交之间加入验证阶段;2.在两阶段协议的基础上使用时间戳。,论文2:QuickSilver系统中的恢复管理(5),解决协调者失败问题 协调者失败的危害:1.参与结点所持有的资源被无限期锁定 2. 单点失败解决方法:1.协调者迁移,仅限于一个协调者和
8、一个参与者之间2协调者复制,在备份协调者之间使用特殊的提交协议 ,而不是两阶段提交协议,论文2:QuickSilver系统中的恢复管理(6),日志和恢复 目标:通用、高效日志处理和系统恢复四种策略: A在日志记录中加BackPointers:即针对每个发起事务的服务器,在日志中用特殊的BackPointer标识出来,这样当该服务器失败时很容易找出该服务器对应的所有事务。 B批量I/O访问:对需要大量写日志的服务,允许他们占用大片相邻单元,以提高访问速度。 C日志备份 D归档数据,论文2:QuickSilver系统中的恢复管理(7),QuickSilver系统限制:不支持事务嵌套 无死锁检测与恢
9、复 写日志时阻塞,效率低。,特别话题:,分布式事务的现状与展望,分布式事务的现状以及展望(2),分布式数据库是分布式事务应用的重要领域如,Microsoft、Oracle、Sybase、IBM等都有与自己分布式数据库系统相结合的事务处理机制。,分布式事务的现状以及展望(3),各服务提供商都研发了自己的分布式事务服务器 Microsoft Distributed Transaction Coordinator,MS DTC IBM TXSeries Oracle Application Server Sybase Enterprise Application Server Borland集成事务处理服务(ITS) BEA WebLogic IBM WebSphere Application Server HP NOKIA ,分布式事务的现状以及展望(4),坐观风云,惨烈竞争分布式平台: J2EE vs .NET 分布式计算模型: CORBA vs COM/DCOM 分布式事务处理模型: MTS vs EJB,分布式事务的现状以及展望(5),微软帝国的分布式事务处理服务MTS,分布式事务的现状以及展望(6),JAVA世界的企业豆EJB,分布式事务的现状以及展望(7),分布式事务处理的发展给其他领域带来的繁荣:分布式计算 基于构件的开发 面向对象 分布式数据库系统 ,谢谢!,