基于多版本并发控制的移动事务模型的研究

2009-03-02 09:33李兰英
新媒体研究 2009年2期

潘 鹏 李兰英

[摘要]移动数据库系统(MDS)的事务管理必须运作于诸如低带宽,电量限制,弱连接,和移动性等很多有限的资源下。由于这些限制,传统的并行控制机制不能够维持活动事务的可用性。所以改进的事务调度和并行控制机制必须能够充分的发挥MDS的潜能。阐述关于多版本事务处理方法和基于结合时间戳的多版本两段加锁的无死锁并行控制机制。目标模型通过改进的并行度,减少的事务等待时间和更小撤消率提供更高的吞吐量。

[关键词]移动事务 并行 多版本 加锁

中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2009)0120074-02

一、移动事务处理概述

(一)移动数据库中的事务处理

在移动计算环境下,有移动终端参与了执行的事务称为移动事务(mobile transaction,MT)。移动事务处理就是要维护移动终端与中心数据库之间的数据一致性,提供事务处理的能力。于移动终端的移动性和无线网络的特点,移动事务和传统数据库中的一般事务(满足ACID准则)有一些区别。

1.由于无线网络断接或者计算终端的移动,因此移动终端间或移动终端和中心数据库之的数据并不需要时刻保持严格一致。

2.由于无线网络经常断接,或者移动终端本身的硬件条件有限,移动终端不可能与服务器保持实时连接,因此移动事务很可能是个长时间的事务。

3.在传统的分布式数据库事务处理过程中断接被看作是故障,但是在无线计算环境下,断接情况被视作是正常的移动数据库应在断接的情况下依然提供事务处理服务,所以其事务处理方式必然和传统的数据库技术有所不同。

4.由于移动终端可以在网络环境中自由移动,因此事务的状态,事务访问的数据状态以及位置信息都会改变。

(二)现有移动事务的处理模型

鉴于移动事务和传统事务处理存在上述区别,因此传统的事务处理方法不能够直接用来解决移动环境下的事务处理。近年来,许多研究机构对移动事务进行了专门的研究,并提出了各种处理模型。

如:M.H.Dunham等人提出的基于全局事务和拆分事务建立的Kangaroo模型。P.K.Chrysanthis在Open-Nested事务模型的基础上为了适应移动环境而提出的移动嵌套事务模型。他的模型当中强调了事务的补偿等概念,但是这种补偿似乎会造成较大的系统开销。G.D.Walborn和P.K.Chrysanthis提出的基于语义的事务模型的总体思想是总体思想是通过可以交换操作来提高事务的并发性。Pitoura和B.Bhargava提出的以支持断接操作、局部连接和模糊数据(例如位置信息)的弱事务模型。E.Pitoura和B.Bhargava提出了一种针对移动计算环境中经常出现的、可预计的、多变的断接状况,而设计的一种被称为“簇模型”的移动事务处理模型。S.K.Madria和B.Bhargava提出了预写操作以提高移动事务中贡献数据的可访问性,但是在事务恢复策略上还没有进一步的讨论。J.Jing,O.Bukhres和A.Elmagarmid提出了一种新型的锁管理策略。

二、移动数据处理模型

在多版本事务调度中一个好的移动事务应该存在三个状态,1.事务开始;2.事务提交;3.事务结束。一个活动的移动事务可能处于三种状态的任何一个。一个移动事务能够在一个移动主机上开始和提交,但是它只能在一个数据库服务器上结束。在约束条件下目标调度在一个数据项的不同版本上同时执行读锁和写锁请求,这些约束都是根据分布式并行数据库数据项的锁请求和琐维持时间戳指定的。如果一个事务能过成功地提交到服务器就可以间接的证明这个事务执行的正确性,而不必要设立单独的确认段。这个模型要求读写操作具有并发性,即一个Read操作总是能够得到上一个被提交或被结束的数据版本,这个过程中不能被阻塞。

多版本事务(MV-T)机制是通过众多的移动事务(MT)的执行实现的。一个移动事务(MT)在移动主机(MH)上被部分地处理之后,将被提交到服务器上进行最终的处理。关于模型也进行了如下的设定:一个移动事务能够通过任何移动主机将其提交到服务器中,与此同时服务器也应能够同时运行被其他主机提交的移动事务。在这整个过程中要注意两点:1.一个事务成功的将被更新的数据项提交到服务器之后,这个事务才真正地完成了在移动主机上的使命;2.在服务器上的移动事务,必须满足两个条件:(1)该事务上的所有锁都被服务器撤销;(2)该事务成功的将数据项更新到数据库系统中。才能被服务器成功的结束。

在本文的目标模型中,通过充分利用移动事务在移动主机中提交和数据库服务器中结束之间的时间,来改进移动事务的并行性。

例子:在同一个数据库服务器的处理范围中有两移动主机分别执行着两个事务T1和T2(图1)。事务T2在事务T1提交以后结束之前开始执行。这样T2就无须为了等待T1结束之后才开始而白白浪费等待时间。如果一个事务允许在移动主机上提交,数据项允许被移动主机上的事务改写之后再传回数据库服务器,这样的事务就会比其他事务更具有可用性。

(二)加锁协议

我们使用加锁方法完成数据的独立性和排除层叠的中止行为,利用时间戳来避免死锁。另外还引进了验证锁。一个移动事务(MT)被提交以后它的读锁就被修改为验证锁。如果移动事务的锁请求因已被占用而不能得到满足,这些移动事务(MTs)会被阻塞或中止。对于一个正在向一个数据项请求加锁的移动事务,我们称为‘请求者;而一个已经拥有数据项操作权限的移动事务,我们称为‘拥有者。当一个‘请求者的时间戳高于‘拥有者的时间戳时,这个‘请求者即被阻塞。

一个移动事务通过读请求操作可以获得数据项的最新版本。这就是定义的读规则,这个规则适用于所有的读请求操作。应该注意的是,在乐观模型中一个移动事务通过读操作只能读到数据项较老的一个版本。前面提到过,当一个‘请求者不能得到需要的数据项时,就会被阻塞,这种行为,就是根据锁请求调度程序来实现的,这样可以有效的避免冲突。

三、结束语

移动数据库系统已被越来越广泛地应用于各行各业,其关键技术之一是移动事务的处理。本文介绍了现有移动事务处理模型,并提出了自己的事务处理方法。本文给出的数据库原型系统在事务处理等方面有的色,具有一定的实用价值。

参考文献:

[1]曾宪权、冯玉东,移动事务处理技术研究进展,计算机与数字工程[J].2005,33(12):50-54.

[2]刘云生、丁力,主动实时数据库的事务处理[J].微计算机应用,2007,28(2):163-165.

[3]P.K.Chrysanthis,K.Ramamritham.Synthesis of Extended Transaction Models U-sing ACTA[C].University of Pittsburgh,CS Technical Report 93-05,1993:103-118.

[4]P.K.Chrysanthis:Transaction Processing in Mobile Computing Environment[C].Proceedings of the IEEE Workshop on Advances in Parallel and Distribu-ted Systems,Princetom,New Jersey,October 1993:77-83.

[5]Gkaiser,NHutchinson.Split-Transactions for open-Ended activities[C].In:Proce-edings of the l4,International Conference on VLDB,Los Angeles,California,1988:26-37.

作者简介:

潘鹏,男,汉,河南开封,哈尔滨理工大学计算机科学与技术学院硕士研究生,主要研究方向:嵌入式数据库。