论文部分内容阅读
分布式数据库系统中,数据分布在计算机网络各物理站点上,所以要求把分布式事务分解成若干子事务,在不同的站点上对相应的本地数据库进行操作,由此引发了分布式事务提交的原子性问题。
目前主要采用分布式事务提交协议来保证其原子特性。两阶段提交协议为解决分布式事务的原子性提交问题而提出,要求在事务提交的过程中,所有的子事务全部提交或全部撤销。两阶段提交协议因其提交过程简单目前被广泛的应用,但其存在易于阻塞和信息成本大的缺点。一阶段提交协议对通信速率要求高,并且对数据库系统有一定的要求和限制,故适用范围有限,但事务在整个提交过程中,消息复杂度和强制写日志的次数较少,分布式事务整体的执行效率高。三阶段提交协议在一定程度上解决了两阶段提交协议的阻塞性问题,提高了系统资源的利用率,但同时进一步增加了信息通信成本,整体上降低了事务的执行效率。因此,如何在保证分布式事务原子性的同时,降低分布式事务阻塞问题发生,并进一步提高事务执行的效率是分布式数据库系统中研究的热点问题。
本文首先对分布式事务的相关知识和现有的分布式事务提交协议(如两阶段事务提交协议、一阶段事务提交协议、三阶段事务提交协议以及基本的1-2PC协议等)进行研究和优缺点的分析,并重点介绍了基本的1-2PC协议。
其次,针对提交协议中存在的阻塞问题,本文提出一种新的协议,该协议以基本的1-2PC协议为基础,通过“多站点备份”技术和“心跳检测”技术来减少当故障发生时分布式事务发生阻塞的几率,并缩短参与者正常终止事务的时间。然后对新协议从消息复杂度和强制写日志次数两个方面进行优化,提高分布式事务执行的效率。
最后,本文给出了新协议的故障处理与恢复方法,并通过与已有的分布式事务提交协议在消息复杂度、时间延迟复杂度、事务发生阻塞的几率以及发生阻塞后参与者的等待时间这四个方面进行性能比较和分析,说明了新协议的优势所在。