分布实时数据库系统中事务处理的研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
收稿日期:2001203205
基金项目:广东省重点攻关资助项目(99B01702G )
分布实时数据库系统中事务处理的研究
3
钟远明1,
奚建清2
(11菲奈特系统网络公司,广东广州510665;21华南理工大学计算机科学与工程系,广东广州
510641)
摘 要:分布实时数据库系统中,事务的执行受到时间期限的约束。在分析原有理论的基础上,对分布实时数据库系统中的事务处理进行了研究,重点探讨了提交处理和并发控制两方面,并结合乐观法和虚拟锁等技术的思想,提出了几种新的设计构思。
关键词:事务;执行期限;分布;实时;提交处理;并发控制中图法分类号:TP391172;TP39311 文献标识码:A 文章编号:100123695(2002)022*******
Study on Transaction Processing in Distributed Real 2time Database System
ZH ONG Y uan 2ming 1,XI Jian 2qing 2
(11Fenet Royalstone Lompany Ltd.,Guangzhou Guangdong 510665,China ;21Dept.o f Computer Science &Engineering ,South China University o f Technology ,Guangzhou Guangdong 510641,China )
Abstract :T ransactions need to meet the deadline constraint in Distributed Real 2time Database System.T he paper presents the research in transaction processing in DRT DBS with focus on b oth commit processing and concurrency control.S ome feasible designs and meth ods are als o addressed in this paper based on the idea of Optimistic C ontrol and Virtual Lock scheme etc 1K ey w ords :T ransaction ;Deadline ;Distributed ;Real 2time ;C ommit Processing ;C oncurrency C ontrol
把一组相关的数据分布在计算机网络中,由DDBMS 统一管理的系统,称为分布式数据库系统[1]。随着实时应用的普及,在原有数据库系统的基础上引入了执行期限(Deadline )概念,称为分布实时数据库系统(Distributed Real T ime Database System ,简称DRT 2DBS )。在DRT DBS 中,事务如果在Deadline 前没能完成则被认为是无效的或无意义的,将被立即停止(K illed )和废弃(Discarded )[2]。本文对DRT DBS 中的事务提交处理和事务并发控制进行了研究,提出了一些新的设计构思。
1 传统的分布事务提交协议
对于传统的分布事务模型,定义主事务(M aster )和子
事务(C ohorts )的概念如下:
主事务 事务的主进程,它在事务提交(Subm it )的节点上运行。
子事务 事务的子进程的集合,它在事务要访问的各个分布的节点上运行。
子事务结束任务后,会发送一个W ORK DONE 消息给主事务;当主事务收到所有子事务的W ORK DONE 消息后,开始调用提交处理协议对事务进行提交处理,保证事务的ACID 准则
。经典的分布事务提交协议有二阶段提
交协议(2PC )和三阶段提交协议(3PC )。1.1 二阶段提交协议
二阶段提交协议(2PC )中,主事务和子事务之间有两次消息交互,如图1所示。
图1 二阶段提交协议(2PC )
基于讨论的问题,这里只考虑分布事务成功的情况。当子事务发出NOT OK 消息给主事务后,子事务可自行回卷;当子事务发出OK 消息后,子事务就进入一个预提交状态(Prepared S tate ),直至收到主事务的C OM MIT 或ABORT 消息,才相应转到提交状态或终止状态。
2PC 由于简单实用,在分布数据库系统中有广泛应用,已成为事实上的工业标准。但在DRT DBS 中却有很大局限性,因为子事务在预提交状态时,它所持有的全部锁和数据资源是不会释放的,其它事务会因此而阻塞,实时性能降低。
下面研究的重点就是对预提交状态的处理进行优化,结合乐观法和Snapshot 机制等的优点,提出扩展的、可行的协议方案。1.2 三阶段提交协议
三阶段提交协议(3PC )是为了解决2PC 中的事务阻塞问题[3,4]。3PC 在一定程度上避免了阻塞,但实现
复杂,额外的网络通讯和Log 日志开销大,实际应用并不多,这里不再赘述。在DRT DBS 中,仍是以2PC 及其变种为主。
2 DRTDBS 中的事务提交处理
如前面所述,对事务提交处理的研究重点是,对预提
交状态的处理进行优化,减少阻塞发生的机率。引用快照机制[5],当事务要访问的数据被处于预提交状态的事务持有时,后者拷贝生成快照,前者对快照进行读写访问,事务继续执行而无需阻塞等待。这种思想的出发点是基于乐观的设想,认为处于预提交状态的事务最后总是能成功提交,因此它所生成的快照也是有效的。基于此,下面的协议统一用OPT (Optim istic 的意思)命名。
这里涉及到两种事务(见图2):一种是处于预提交状态的事务,它要生成快照给其它事务使用,这里称之为贷方事务;另一种是处于执行状态的事务,
它要访问的数据被处于预提交状态的事务持有,它读写贷方事务所生成的快照,这里称之为借方事务。贷方事务可为多个不同的借方事务生成快照;借方事务可访问多个不同的贷方事务的快照。
图2 贷方事务和借方事务
图2中,T i ∈{预提交状态的事务};T j ∈{正在执行的事务}。
2.1 初级OPT 协议
初级OPT 协议是贷方事务和借方事务概念的初步应用。当执行状态中的事务要访问的数据被处于预提交状态的事务持有时,由后者生成快照让前者进行访问,此时前者称为借方事务,后者称为贷方事务。
如果借方事务先接收到C OM MIT 消息,则必须挂起,等待所有相关的贷方事务先提交;如果借方事务先收到ABORT 消息,则自行终止事务;如果贷方事务先进入提交状态或终止状态,则提交处理的描述如图3所示。
图3 初级OPT 协议的事务提交处理
结合图2,如果贷方事务T i 最后成功提交,则借方事
务T j 继续执行;如果贷方事务T i 最后失败(Abort 或因为执行期限到达而被迫废弃),则借方事务T j 回卷重执。
初级OPT 协议的优点是实现简单,对事务管理层影响不大。它仅仅是对2PC 中的子事务预提交状态进行扩展优化,和2PC 结合较好。缺点是事务失败的机率和牵涉面过大。临近执行期限的贷方事务如果继续为借方事务生成快照,一方面生成快照会消耗额外时间,贷方事务可用的时间就会更少;另一方面贷方事务因为执行期限到达而被迫废弃时,会牵连所有和它相关的借方事务回卷重执,损失对借方事务而言是无辜的。因此当贷方事
务接近执行期限时,应避免再向借方事务生成快照,缩小贷方事务的牵涉面,达到减少损失的目的。2.2 启发式OPT 协议
在初级OPT 协议中,贷方事务在临近执行期限时的快照生成导致了大量借方事务的无辜回卷和重执,因此,定义这个临近执行期限的时间段为危险阶段。启发式OPT 协议的提出就是为了避免贷方事务在危险阶段对外生成快照。
启发式规则:如果贷方事务的当前时间和执行期限的差距小于阀值M 时,不允许为借方事务生成快照;否则允许生成快照。M 的取值可以根据系统负荷动态调整,或根据实验的测试数据选取较优值。
启发式OPT 协议继承了初级OPT 协议的优点,而且有效地解决了危险阶段所导致的借方事务无辜牺牲问题;缺点是,任何贷方事务的失败都会导致借方事务的全局回卷,如果借方事务是个长事务,
或者借方事务已经临近提交阶段,全回卷所带来的损失是非常大的。2.3 结合镜像集机制的OPT 协议
为了避免全回卷发生,提出一种扩展的OPT 协议,如图4所示。当借方事务要访问的数据被贷方事务持有时,借方事务先用一个镜像集保存事务的当前状态,然后由贷方事务生成数据快照给借方事务访问,借方事务继续执行。
图4 结合镜像集的OPT 协议
镜像集在这里的作用是,镜像(M irror )事务的私有工作空间数据,作为一个临时保存点,同时在系统中进行日志记录。
在图4的示例中,事务T 1和T 2均处于预提交状态,数据A 和B 被T 1持有,数据C 被T 2持有,事务T 3处于执行状态。当T 3访问数据A 时,T 3先用镜像集1保存当前的状态,同时记录日志,然后由T 1生成快照A ’,T 3对A ’进行访问,事务继续执行;当T 3访问数据B 时,T 3先用镜像集2保存当前状态,同时释放镜像集1,记录日志,然后由T 1生成快照B ’,T 3对B ’进行访问,事务继续执行;当T 3访问数据C 时,T 3先用镜像集3保存当前状态,同时记录日志,然后由T 2生成快照C ’,T 3对C ’进行访问,事务继续执行。其它的情况类似进行。
对于一个特定的贷方事务,只有一份镜像集是有效的,所以当T 3访问B 时要释放镜像集1。不同贷方事务所对应的镜像集分别保留,如图4中的镜像集2和镜像集3所示。
和上述的OPT 协议相似,如果T 1和T 2成功提交,则