1. 实时事务的特性与分类
实时数据库系统(Real-Time Database System, RTDBS)是数据和事务都可以具有定时特性或显式定时限制的数据库系统,其正确性不仅依赖于逻辑结果,而且依赖于该逻辑结果产生的时间。这种双重约束使得实时数据库在处理事务时需要考虑更多维度的时间因素,而非传统数据库单纯关注数据一致性。
实时事务根据其截止期要求和错失截止期带来的后果严重性,可分为硬实时事务、软实时事务和固实时事务三种类型。硬实时事务错失截止期会导致灾难性后果或系统性能急剧下降,必须保证在截止期内完成;软实时事务错失截止期可以容忍,但会降低系统性能;固实时事务在截止期后完成其结果将变得无用,但不会造成损害。这种分类对调度策略的选择至关重要,因为不同类别的事务需要不同的调度保证。
实时事务具有多种关键属性,包括到达时间(a(t))、开始执行时间(s(t))、截止期(d(t))、数据截止期(ddt(t))、访问的数据对象数(L(t))等。数据截止期是一个特别重要的概念,定义为事务截至某个时刻访问的时序数据对象的有效期终点的最小者,它反映了事务访问数据的时效性要求。理解这些属性对于设计高效的事务调度和并发控制机制至关重要。
2. 实时事务的优先级分配策略
在实时数据库系统中,合理分配事务优先级是调度成功的核心。最早截止期优先(EDF)算法是最基本的动态优先级分配策略,按照事务的截止期分配优先级,截止期越早,优先级越高。研究表明,EDF算法能够实现全部的处理器利用率,有利于提升系统性能。
最小空余时间优先(LSF)策略则基于事务运行时间估算,按照事务的空余时间(slack time)分配优先级。空余时间定义为截止期与预计完成时间的差值,空余时间越小,优先级越高。这种策略考虑了事务的执行进度,更能反映事务的紧急程度。
传统优先级分配策略只考虑事务截止期,而忽略了数据时效性要求。为此,研究人员提出了同时考虑事务截止期和”数据截止期”的混合策略。其中,截止期最小者优先策略按事务截止期和数据截止期之间的最小者分配优先级;而基于数据截止期的空余时间最小者优先策略则在LSF基础上引入数据截止期概念,使优先级分配更加全面。
对于混合实时事务环境,MCC-DATI协议采用动态优先级驱动调度算法,通过限制非定期的软实时事务对硬实时事务的阻塞时间,保证硬实时事务的可调度性;同时,采用非定期任务调度算法以及基于时间戳间隔的动态串行化顺序调整机制来减少软实时事务的截止期错失率。
3. 实时事务的并发控制协议
并发控制是保证多个事务同时执行时不破坏数据库一致性的关键技术。实时数据库中的并发控制协议主要分为悲观控制协议和乐观控制协议两大类。
3.1 基于锁的悲观并发控制协议
基于锁的协议采用”先检测冲突,后执行”的悲观策略,在事务访问数据前先获取相应锁,防止冲突发生。两段锁协议(2PL)是传统数据库中最常用的并发控制协议,但在实时环境中容易导致优先级反转问题。
为解决优先级反转问题,研究者提出了多种改进策略。优先级继承协议是其中一种基本方法,当出现优先级倒置时,低优先级事务继承高优先级事务的优先级。有条件的优先级继承协议则进一步改进,系统会检验低优先级事务是否已接近完成,是则继承高优先级,否则将其取消。数据优先级法为每个数据对象分配优先级,其值等于所有申请事务的最高优先级,如果申请事务的优先级比该值低,申请就被拒绝。
SRP-DATI协议通过增加读写语义扩展堆栈资源策略(SRP),引入写优先级顶(WPL)和动态读写优先级顶(RWPL)概念,有效控制数据冲突导致的优先级反转问题。该协议要求事务的抢占等级与优先级满足特定关系,确保高优先级事务能够及时抢占资源。
3.2 乐观并发控制协议
乐观并发控制(OCC)采用”先执行,后检测冲突”的策略,假定事务间冲突概率很小,事务在执行过程中不受限制,仅在提交时进行冲突检测。OCC将事务处理分为读阶段、计算阶段、验证阶段和提交阶段四个阶段。
OCC-DATI协议利用赋予每个事务的时标间隔来检测数据冲突,动态调整事务的串行化次序,从而减少重新启动事务的数量。时标间隔反映了事务之间的串行次序,在事务处理中被不断调整,根据冲突类型的不同(读/写、写/读和写/写),可以向前或向后调整各个冲突事务的时标间隔。
OCC-CS算法基于提交空间(Commit Space)概念,通过动态调整执行顺序避免不必要的重启。根据半提交选择法的不同,OCC-CS算法可分为CS-LEFT、CS-RIGHT、CS-ALT和CS-LRC算法。实验表明,CS-ALT算法能够比基于动态调整串行化顺序方法的OCC-DATI算法更有效地避免不必要的重启。
4. 数据时态特性对事务调度的影响
实时数据库中的数据具有鲜明的时态特性,这些特性直接影响事务调度和并发控制的效果。时序数据对象具有外部有效期,其值只在特定时间范围内有效。数据有效期分为绝对有效期和相对有效期,绝对有效期表示单个数据对象值有效的时间范围,而相对有效期则表示一组相关数据对象之间的时间一致性要求。
数据截止期是连接事务调度与数据时态特性的关键概念。事务在某个时刻的数据截止期定义为该时刻前访问的所有时序数据对象的有效期终点的最小值。数据截止期在事务执行过程中动态变化,随着事务访问更多数据而可能缩短。调度器必须同时考虑事务截止期和数据截止期,以确保事务在提交时访问的数据仍然有效。
为保证数据的时间一致性,研究者提出了夭折-等待处理策略。该策略基于数据截止期和响应时间估算,当事务无法在数据有效期内完成时,系统根据情况决定是让事务等待数据的新版本还是夭折重启。考虑数据”相似性”的夭折-等待策略进一步扩展了这一思想,当连续数据版本之间差异较小时,即使超过有效期,仍可接受旧版本数据,提高系统灵活性。
在主动实时数据库中,时态数据的不同变化速率(稳定性)也影响调度决策。易变的时态数据有效期较短,而稳定的时态数据有效期较长。调度器需要根据数据的稳定性特征调整调度策略,对易变数据采取更积极的预取和更新策略。
5. 事务调度与并发控制的性能优化技术
实时数据库系统性能优化的核心目标是降低事务错失截止期的比率(错失率),同时提高资源利用率和系统吞吐量。针对这一目标,研究者提出了多种性能优化技术。
动态调整串行化顺序是减少不必要事务重启的有效方法。通过动态调整事务的串行化顺序和读写顺序,系统可以寻找可串行化的调度,避免不必要的事务重启。与静态串行化顺序相比,动态调整能更好地适应实时环境的变化,提高事务完成率。
牺牲重启事务策略针对系统高负载情况下的资源浪费问题,通过让更有可能满足截止期的未重启过的事务优先执行,减少”浪费的执行”。该策略在系统负载较高时特别有效,能提高实时事务满足截止期的机会,降低系统错失率。
多版本并发访问策略将数据库存储空间分为一致版本和工作版本,读锁请求作用于一致版本,写锁请求作用于工作版本。这种读写分离策略允许多个读操作同时进行,提高系统并发性。提交锁通过将写锁升级为提交锁来获得,确保数据一致性的同时减少阻塞。
阴影节点方法实现优先级继承,当出现事务阻塞时,向事务队列插入一个新节点,该节点对应的事务和寄存器状态与被阻塞事务相同,且优先级继承自被阻塞事务。这种方法有效减少线程切换带来的资源消耗,支持多重继承,提高系统对阻塞的处理能力。
双重循环结构是数据库工作线程的一种高效设计,外层循环不断从事务队列中读取当前优先级最高的事务,内层循环则根据事务的程序计数器执行事务的字节码指令,并检查事务队列中的抢占式调度标志。这种结构使系统能够实时响应事务队列变化,通过抢占式调度优先执行新到达的高优先级事务。
6. 混合实时事务的调度框架
现实世界的实时应用通常需要同时处理多种类型的事务,混合实时事务调度框架因此显得尤为重要。两层结构的混合实时数据库系统模型包含事务解析器、非定期事务调度器、EDF调度器、并发控制器以及硬实时事务队列与非定期事务队列。
在这种框架下,TB算法(Total Bandwidth Server)是一种有效的非定期事务调度算法。TB算法按照EDF算法安排非定期事务的抢占执行,为每个非定期事务分配一个尽可能早的截止期,并且要求这个截止期保证不会影响硬实时事务的可调度性。通过缩短非定期事务的截止期,使得这些事务在EDF调度器中能够获得更高的优先级,从而在不影响硬实时事务满足截止期的前提下,促进非定期事务的响应时间。
MCC-DATI协议是针对混合实时事务环境的一种综合并发控制方案,它集成SRP-DATI协议与OCC-DATI协议,既保证硬实时事务的可调度性,又减少软实时事务的截止期错失率。该协议通过动态调整串行化顺序,最小化由于软实时事务与硬实时事务之间的数据冲突而导致的软实时事务重启。
仿真实验表明,MCC-DATI协议在不同的系统负载与截止期约束下都能够改进系统的性能,相对于先前的混合事务并发控制协议表现出更好的适应性。这种性能优势在动态变化的实时环境中尤为宝贵。
7. 结论与未来研究方向
实时数据库事务调度与并发控制机制是一个复杂而关键的研究领域,直接影响实时系统的性能和可靠性。通过对实时事务特性的深入分析,合理的优先级分配策略,有效的并发控制协议,以及考虑数据时态特性的优化方法,可以显著提高实时数据库系统的性能。
未来研究有几个重要方向值得关注。其一是智能自适应优化技术,利用机器学习方法预测事务执行模式和数据访问模式,动态调整调度策略。其二是分布式实时事务处理,随着物联网和边缘计算的发展,分布式环境下的实时事务调度和并发控制面临新的挑战。其三是实时性与一致性权衡,在严格要求实时性的场景下,如何合理放宽一致性要求以提高事务完成率值得深入研究。
实时数据库技术的发展将推动实时应用在智能制造、自动驾驶、智能电网等关键领域的更广泛应用,为数字化转型提供坚实的技术支撑。

























