确保时态一致性的实时并发控制方法 【技术领域】:本发明属于实时数据库领域。通过在传统的实时并发控制方法中引入时态一致性检查机制和相似性思想,很好地满足了时间关键类应用在时态一致性与实时性两方面的需求。
【背景技术】:实时数据库系统是事务和数据都可以有定时限制的数据库系统,系统的正确性不仅依赖于事务执行的逻辑结果,而依赖于逻辑结果产生的时间。实时数据库系统中事务的定时限制典型地表现为事务的截止期。一个事务若在规定的截止期后完成,结果将变得毫无价值,甚至还可能带来灾难性的后果。数据的定时限制表现为时态数据的有效期,时态数据仅在其有效期内有效。
实时数据库系统通常应用在一些时间关键类应用中,如自动驾驶、机器导航、实时监控、股票交易、军事作战指挥系统等。上述应用一方面需要实时数据库系统维护大量的共享数据,另一方面其应用活动有很强的时间性,要求在一定的时刻或一定的时期内自外部环境采集数据、按彼此之间的联系来处理采集的数据并做出及时的响应。同时,它们处理的数据往往是“短暂”的,即只在一定的时间范围内有效,过期则对当前决策或推导无意义。
传统的实时并发控制方法主要着眼于如何尽可能地减低事务错过截止期的比率,而忽略了实际应用中事务对所存取的数据对象有时态一致性需求。如在病人监控系统中,病人的心跳、温度、血压等特征被周期性的获取并写入数据库,监控事务读取病人的心跳、温度、血压数据,并以此为依据来触发相应的控制信号来向医生报告病人的状态,这不仅需要确保监控事务能在规定的截止期内完成,而且需要确保监控事务读取的是有效并且时态相互一致的数据。典型时态相互不一致的情况为:监控事务读取的心跳数据是时刻T
i采集、写入的,而读取的温度、血压数据则是在一定时间间隔后,如在时刻T
i+5采集、写入的。显然,基于上述数据的推断可能导致错误的病情报告。
传统的实时并发控制方法没有考虑到时间关键类应用的时态一致性需求,因而不能确保事务存取的数据总是满足时态一致性。为此,需要研究能确保时态一致性的实时并发控制方法,同时满足时间关键类应用在时态一致性与实时性两方面的需求。然而,确保时态一致性与确保高的实时性能这两方面往往相互冲突,通常实现某方面往往以牺牲另一方面为前提,因此,研究能同时满足时态一致性和实时性两方面需求的并发控制方法是一项具有挑战性的研究课题。
在时间关键类应用中,时态数据对象是外部客观环境在计算机内的逻辑表示,时态数据对象的值通过各种传感器采样获得,并被周期性地写入数据库中。由于把采样值写入数据库就存在一定的延时,因此写入数据库中的值已经不是外部客观环境的绝对精确的反映,所以在时间关键类应用中通常允许一定限度内的短暂的不一致存在。传统的冲突可串行化标准对时间关键类应用而言,显得过于严格,为此,本发明方法通过引入相似性的思想,来放宽对可串行化的要求,从而高效地提高实时性能。
【发明内容】:本发明的目的是克服现有技术存在的上述不足,提供一种既能满足时态一致性需求又能确保系统实时性能的实时并发控制方法。
本发明提供的确保时态一致性的实时并发控制方法,首先给出了时态一致性的形式化定义;然后给出了数据相似与操作相似的形式化定义;进一步提出了相似可串行化标准;在上述基础上,对传统的实时并发控制方法——高优先级两段锁(HP-2PL)方法进行改进,通过引入时态一致性检查机制和相似性思想,提出了既能满足时态一致性需求又能确保系统实时性能的实时并发控制方法。
该方法具体描述如下:
第1、时态一致性的形式化定义
第1.1、本发明方法描述中将使用的一些符号及其含义见表1:
表1符号及其含义
![]()
第1.2、定义1时态数据对象:时态数据对象X定义为一个三元组:X::=<V(X),ST(X),VI(X)>;其中,V(X)表示X的当前状态或值;ST(X)表示采样时刻,即采样X所对应的外部客观环境某一特征量的时间;VI(X)表示X的有效期,即自ST(X)算起,V(X)具有有效性的时间长度;
第1.3、定义2外部一致性:时态数据对象X被称为满足外部一致性,如果有ST(X)+VI(X)≥T
c成立,这里,T
c表示当前时刻;
第1.4、定义3相互关联集:用来做决策或导出新数据的一组时态数据对象称为一个相互关联集;
第1.5、定义4相互一致性:设R={X
1,X
2,...,X
m}是一个相互关联集,V(R)表示R中时态对象在某一时刻值的集合,即V(R)={V(X
1),V(X
2),...,V(X
m)};若如下条件成立:
![]()
|ST(X
i)-ST(Y
j)|≤R
mvi),则称V(R)满足相互一致性;这里,R
mvi为R的关联有效期,它的取值因应用语义而定,通常R
mvi取R中所有时态对象有效期的最小值;
第1.6、定义5数据的时态一致性:若一个时态数据对象既满足外部一致性又是相互一致性的,则称它满足时态一致性;
第1.7、定义6事务的时态一致性:假定DS(t)={X
1,X
2,...,X
m},若事务t同时满足下列条件:
(1),∀Xi∈DS(t)(T(t,Xi)<ST(Xi)+VI(Xi))]]> (2){V(t,X
1),V(t,X
2),...,V(t,X
m)}满足相互一致性
则称事务t满足时态一致性;
第2、数据相似与操作相似的形式化定义
第2.1、定义7冲突事务对:设t
r和t
h为并发执行的一对事务,若存在Op
i∈t
r,Op
j∈t
h,Op
i和Op
j作用在同一数据对象上且有一个为写操作,则称t
r和t
h为一冲突事务对;
第2.2、定义8数据相似:对于时态数据对象X的两个取值V
1(X)和V
2(X),若下面条件满足:
|f(V
1(X)-f(V
2(X))|≤α
则称V
1(X)和V
2(X)是数据相似的,记为:V
1(X)≈V
2(X);这里,f表示从X的取值集合到实数集的一个映射;α为预先定义的相似阈值;
第2.3、定义9操作相似:设t
m和t
n为并发执行的一对事务,Op
i∈t
m和Op
j∈t
n且Op
i和Op
j为作用在同一数据对象X上,若下列条件满足:
V(Op
i,X)≈V(Op
j,X)
则称Op
i和Op
j是操作相似的,记为:Op
i≈Op
j;
第3、数据库状态相似与相似可串行化
第3.1、定义10数据库状态相似:假定SD
i,SD
j分别表示数据库在两不同时刻的数据值的集合,X表示某一时态数据对象,V
i(X)表示X在SD
i中的值,V
j(X)表示X在SD
j中的值,若下面条件满足:
![]()
则称SD
i和SD
j状态相似,记为:SD
i≈SD
j;
第3.2、定义11相似可串行化:假定Sch
a是并发事务集{t
1 t
2,...,t
n}的一个调度,SD
a是Sch
a产生的数据库的一个状态,若下面的条件满足:
![]()
则称Sch
a是相似可串行化的;这里,Sch
b表示某一串行调度;SD
b表示Sch
b产生的数据库的一个状态;
第4、基于相似性的数据冲突解决策略
第4.1、锁类型定义及锁相容性矩阵
基于相似性思想,进一步对传统的锁类型进行扩展,在现有的R读锁、W写锁基础上新增了SR相似读锁和SW相似写锁,并给出了锁相容性矩阵,见表2:
表2锁相容性矩阵
![]()
其中,Y表示“允许”,N表示“不允许”
第4.2、数据冲突解决策略
当一事务对某个时态数据对象执行读操作或写操作时,它首先申请该数据对象上的R锁或W锁,若调度器Scheduler没检测到操作冲突,它授予该事务相应的锁;若检测到操作冲突,它判断冲突操作是否为相似操作,若为相似操作,则授予相应的SR锁或SW锁;当冲突操作为相似性操作时,申请SR锁或SW锁不与其它任何锁冲突;
假定Op
i和Op
j是一对作用在数据对象X上的并发操作,并假定Op
j已持有对X的访问权限,而Op
i正在请求对X的访问权限,对数据冲突的解决采用如下策略:
策略1:假定Op
i和Op
j为一对写-写冲突操作,若有Op
i≈Op
j,则Op
i立即获得对X的访问权限而不管Op
j是否释放对X的访问权限。
策略2:假定Op
i和Op
j为一对写-读冲突操作,若有V(Op
i,X)≈V(Op
j,X),则Op
i立即获得对X的访问权限而不管Op
j是否释放对X的访问权限;
在策略1和策略2中,Op
i被称为相对于Op
j的相似写操作,记作
![]()
策略3:假定Op
i和Op
j为一对读-写冲突操作,若有V(Op
j,X)≈BeforeImage(Op
j,X),则Op
i立即获得对X的访问权限而不管Op
j是否释放对X的访问权限;这里,BeforeImage(Op
j,X)代表数据对象X在操作Op
j前的值;
在策略3中,Op
i被称为相对于Op
j的相似读操作,记作
![]()
第5、确保时态一致性的实时并发控制方法
定义12假定ST代表与事务t
r并发执行的事务的集合,
![]()
假定X为一时态数据对象,若条件:
![]()
![]()
![]()
![]()
成立,则称ST
1为作用X上的t
r的最大冲突事务集;
假定t
r为正在请求对X
i上锁的事务,Op
i为t
r的作用在X
i上的操作;ST
1为事务t
r的作用在X
i上的最大冲突事务集;ST
h表示ST
1中已持有X
i的锁的事务集合;Max(P(ST
h))表示ST
h中事务的最高优先级;SO
h表示持有X
i上的锁并与Op
i冲突的操作的集合,即
![]()
![]()
SO
h1表示属于SO
h的写操作的集合;
确保时态一致性的实时并发控制方法的具体实现算法描述如下:
Begin 1.If(P(t
r)>Max(P(ST
h)))
2.If((DS
1(t
r)∪{X
i}满足相互一致性)∧(T(t
r,X
i)<SI(X
i)+VI(X
i)))
3.
![]()
4.t
r获得相应的SW锁或SR锁;
5.Else
6.夭折ST
h中与Op
i不满足操作相似性的事务,而让t
r获得它正在请求的锁;
7.Else
8.t
r被夭折;
9.Else
10.If((DS
1(t
r)∪{X
i}满足相互一致性)∧(T(t
r,X
i)<SI(X
i)+VI(X
i)))
![]()
12.t
r获得相应的SW锁或SR锁;
13.Else
14.t
r被阻塞;
15.Else
16.t
r被夭折;
End.。
本发明的优点和积极效果:
与现有技术相比,本发明具有以下优点:
1.通过引入相似性思想,提出了相似可串行化标准,对传统的冲突可串行化标准进行了放松,显著地提高了事务的并发度,因而具有很好的实时性能;
2.引入了时态一致性检查机制,因而能确保数据与事务的时态一致性;
3.能确保并发事务执行满足相似可串行化,即能证明如下定理:
定理1本发明提出并发控制方法可确保并发事务执行满足相似可串行化。
证明:(1)设S为遵循本发明方法的并发事务集ST={t
1,t
2,......,t
n}的一个调度,G=(V,E)为调度S的优先图,即V={t
1,t
2,......,t
n},E={(t
i→t
j)|t
i和t
j之间存在一对冲突操作Op
i和Op
j且t
i执行Op
i操作在t
j执行Op
j操作之前,t
i∈ST,t
j∈ST}。设G′=(V,E′)为G中去掉由于相似冲突操作而导致的有向边后得到的有向图。显然根据高优先级两段锁方法(HP-2PL),有向图G′中无环。
(2)设e是有向边集(E-E′)中的任一条有向边,因为(E-E′)中的边必定是两相似冲突操作而导致的,不妨设这两相似冲突操作分别为Op
k和Op
m,其中,Op
k是事务t
k的操作,Op
m是事务t
m的操作,即e=(t
k→t
m)。每次从(E-E′)中取出一条有向边e,并将其加入到有向图G′中,若加入后有向图G′出现了环,由于Op
k和Op
m为相似操作,故交换Op
k和Op
m的执行顺序所产生的数据库状态与原执行顺序所产生的数据库状态为相似的数据库状态。故可将有向边e改为(t
m→t
k),从而消去了图G′中的环,并确保了数据库状态的相似性。
(3)重复步骤(2),直到(E-E′)为空。
(4)经过上面的步骤,确保最后得到的图G′中无环,不妨设优先图G′对应于事务集ST={t
1,t
2,......,t
n}的一个调度为S′,显然S′为可串行化调度。
(5)因为调度S所产生的数据库状态与S′所产生的数据库状态是相似的,故S是满足相似可串行化,即定理得到了证明。
与现有技术相比,本发明的效果:
性能测试结果显示我们提出的并发控制方法在确保时态一致性的同时仍能保证很好的实时性能。
【附图说明】:
图1是本发明方法的实验模型;
图2是本发明方法与流行的高优先级两段锁方法HP-2PL的实时性能比较。
【具体实施方式】:
实施例1
假定t
r为正在请求对X
i上锁的事务,Op
i为t
r的作用在X
i上的操作;ST
1为事务t
r的作用在X
i上的最大冲突事务集;ST
h表示ST
1中已持有X
i的锁的事务集合;Max(P(ST
h))表示ST
h中事务的最高优先级;SO
h表示持有X
i上的锁并与Op
i中突的操作的集合,即
![]()
![]()
SO
h1表示属于SO
h的写操作的集合;
确保时态一致性的实时并发控制方法的具体实现算法描述如下:
Begin 1.If(P(t
r)>Max(P(ST
h)))
2.If((DS
1(t
r)∪{X
i}满足相互一致性)∧(T(t
r,X
i)<SI(X
i)+VI(X
i)))
![]()
4.t
r获得相应的SW锁或SR锁;
5.Else
6.夭折ST
h中与Op
i不满足操作相似性的事务,而让t
r获得它正在请求的锁;
7.Else
8.t
r被夭折;
9.Else
10.If((DS
1(t
r)∪{X
i}满足相互一致性)∧(T(t
r,X
i)<SI(X
i)+VI(X
i)))
![]()
12.t
r获得相应的SW锁或SR锁;
13.Else
14.t
r被阻塞;
15.Else
16.t
r被夭折;
End.。
实施例2、具体性能比较:
将本发明方法与流行的实时并发控制方法-高优先级两段锁方法HP-2PL进行实时性能方面的比较,测试的主要性能指标为:事务错过截止期的比率(MDR),MDR=错过截止期的事务数目/系统接纳的事务数目。MDR反映了系统的实时性能,其值越小,系统的实时性能越好。图1为我们的实验模型。表3给出了主要实验参数。
表3.主要实验参数
![]()
图2显示了在P
S和RTDO取缺省值(即P
S=0.5,RTDO=40%)时,本发明方法(简称为STCHP-2PL)和高优先级两段锁方法HP-2PL在MDR上的差异。当事务到达率(TArrRate)增加时,STCHP-2PL和HP-2PL的MDR都相应地增加,但STCHP-2PL的MDR要明显低于HP-2PL的MDR。这是由于STCHP-2PL引入了相似性概念,对传统的冲突可串行进行了放松,增大了事务并发度,从而导致了较小的MDR。
进一步,我们在对主要实验参数的取值进行不断调整的情况下,广泛地进行该实验,实验结果显示,本发明方法在确保时态一致性的前提下,比高优先级两段锁方法HP-2PL具有更好的实时性能。