论文部分内容阅读
在分布式环境中,事务的多个子事务通常在不同的结点上完成。当前,为了保证分布式事务的ACID特性,最广泛采用的提交协议是两阶段提交协议以及衍生出的三阶段提交协议等。然而,随着网络服务环境的发展,分布式事务也出现了一些新的问题,例如网络服务环境中的资源并发问题,处理时间很长的长事务问题等。本文针对网络服务环境中的这些新问题提出了串行长事务的流水线模型以及分布式事务的并发控制模型,并在此之上构建了一个网格事务处理平台及其应用系统。网络服务环境中的长事务通常需要运行很长时间,也需要长时间地锁住资源,会影响事务处理系统的效率。一般的解决方案是补偿事务模型,即允许子事务独立地提交,一旦事务失败只需要执行具有相反效果的补偿事务即可。然而,在很多情况下,补偿事务很难产生,而且有些事务是无法补偿的。本文针对于长事务中的串行长事务,提出了一种新的基于流水线的处理模型,令事务处理的过程由串行变为流水化处理,大大提升了事务处理的性能,且无需补偿事务。根据两阶段提交协议,分布式事务的子事务在执行时如果请求同一个资源时会发生死锁现象,包括局部事务死锁和全局事务死锁。本文针对局部事务死锁提出了基于资源复制的并发处理方案,允许请求同一个资源的多个子事务在资源副本上串行地执行,在避免死锁的情况下保证了事务的一致性和原子性。针对全局事务死锁,本文提出了基于时间戳的资源预定机制,在两阶段提交协议之前增加资源预定阶段,从而在事务执行之前就能够检测到死锁并进行规避,提高了事务处理的效率。此外,时间戳机制也有效了减少了事务饥饿的发生。基于面向服务的事务处理模型,本文还介绍了面向服务的网格事务处理平台及其应用系统的设计与实现。网格事务处理系统作为网格服务和实际应用之间的中间件软件,为各种网格事务提供了统一的协调接口,包括原子事务,长事务,实时事务,以及串行长事务等。建立在此之上的典型应用包括银行转账系统,旅行计划制定系统,股票交易系统,以及订单处理系统。