支持LRT的失败恢复算法及其事务性质分析
2012-08-04梅晓勇黄昌勤郑小林陈德人李师贤
梅晓勇,黄昌勤,郑小林,陈德人,李师贤
(1. 中山大学 信息科学与技术学院,广东 广州 510006;2. 浙江大学 计算机科学与技术学院,浙江 杭州 310027)
1 引言
组合后长运行事务 LRT(long running transactions)运行的长效性(可能持续几小时、几个月甚至更长),这为 LRT的事务处理带来难度。传统的ACID(atomicity, consistency, isolation, durability)机制过于严格,不再适用于LRT,需要放宽隔离性,松弛资源持有条件,确保可靠LRT执行。因此,在组合事务环境下,把 Relaxed-ACID事务属性应用到LRT是非常有必要的。
文献[1]和文献[2]提出了基于容忍嵌套的 LRT失败执行框架,探讨自动处理容错和失败处理策略。文献[3]提出了组合Web事务的失效恢复算法。文献[4]借助自适应执行上下文,提出一种新的基于语义的动态恢复机制。文献[5]提出了一种基于语义的 Web事务协议。文献[6]提出了一种灵活的确保可靠面向服务事务的方法,确保控制流和事务模式的高内聚。文献[7]提出一种支持业务流程的向后恢复补偿方法,其将补偿逻辑和失败依赖作为协调逻辑的一部分。虽然这种方法解决了回滚问题,但有2个主要缺点:第一,多数情况下只能完成半自适应;第二,这些类型的工作流需要非常严格的流程定义。
目前支持事务机制的组合Web服务环境只提供有限的补偿能力,引入向后恢复确保事务的一致性。文献[8]通过扩展事务协调架构和基础设施,提出一种基于向前恢复策略的高级补偿环境。文献[9]提出一种基于规则的工程补偿方法。文献[10]提出了一种支持用户指定失败处理的Web服务组合框架。文献[11]给出了一个基于Java的事务性组合服务JTWS的API框架。……
