论文部分内容阅读
并发控制策略是否得当直接影响数据库系统性能的优劣,因此在数据库系统的相关研究中,并发控制问题一直是研究的热点问题之一。在实时数据库系统中,一方面,事务由于结合了时间限制而变得更为复杂,系统既要满足逻辑约束又要满足时间约束。另一方面,某些应用需要系统能自动地监视数据库的状态与其变迁。当相关事件发生和条件满足时,可以自动而适时地触发相应的活动。因此,系统中存在着具有嵌套结构的触发事务与被触发事务。两种一致性要求并存及事务的结构复杂性,增加了实时数据库并发控制策略设计的难度。本文从平坦事务模型和嵌套事务模型两方面对实时数据库的并发控制问题进行了深入、系统的研究,为实时数据库设计,提高系统的实时性能提供了重要的理论依据。 首先,研究了基于封锁机制的并发控制问题。采用优先权顶方法,提出了基于优先权顶的实时并发控制方法。对冲突的数据项临时建立三个副本,当事务成功提交后再写入数据库,否则预提交值写入临时缓冲区,当数据项成功写入数据库后删除副本。通过优先权顶方法解决了因封锁方法而导致的优先权倒置与死锁问题,并证明了该方法具有无死锁与单一阻塞性质,避免了不必要的事务阻塞问题,提高了系统的实时性能。 其次,研究了乐观的并发控制问题。在实时数据库系统中,有两个关键问题是影响乐观并发控制方法性能的重要因素。一是延迟的冲突检测带来的较高的重启开销;另一个是即将完成的事务重启而导致过多的事务无法在时间限制内完成。通过对事务的执行情况进行评估,提出了事务完成度与验证因子的概念,在验证阶段检测验证事务与冲突事务的执行情况,优先提交即将完成的事务,最大限度地降低了不必要重启的事务个数。同时,采用多版本并发控制机制,解决了传统方法下无法解决的事务间发生严重冲突的问题。提出了连续提交、紧邻提交的概念,并证明了通过连续提交与紧邻提交能够保证事务所读取数据版本的正确性。基于此给出了一个实时多版本乐观并发控制协议,经过实验与理论分析,该方法保证了串行性要求且性能要优于传统的乐观并发控制方法及动态调整串行化顺序方法。 第三,研究了主动实时嵌套事务模型的扩展问题。在实时数据库系统中,触发事务与被触发事务具有层次关系;允许同一事件触发一组规则,且可并发执行;允许规则执行的模块化提交或回退,而不需要整个事务提交或回退。因此多采用嵌套事务模型来刻画事务之间的各种耦合关系。但是传统的嵌套事务模型在父事务夭折或系统失败将导致子事务的级联夭折。而在实时应用环境下某些子事务提交后可能无法通过进行补偿回退到初始状态。通过对嵌套事务模型进行扩展,给出了关键子事务的定义,允许它在其父事务提交前进行提交并且释放所占有的资源,使其它子事务可以更早的获得所需资源。一旦关键子事务提交以后,不能通过完全回退或补偿子事务来消除其对系统的影响,必须强制其父事务提交。如果关键子事务夭折,则祖先事务选择相应的替代事务继续执行。也就是说,关键子事务对其父事务的提交是关键的。如果关键子事务提交后其父事务夭折或系统失败则系统重启后需要继续完成。关键子事务的提交在其父事务提交之前就具有持久性,因此利用关键子事务策略可以有效避免级联夭折问题。 第四,研究了主动实时并发控制问题。实时数据库中存在着许多具有嵌套结构的触发事务与被触发事务。提出了事务执行步骤图及级联深度等概念。嵌套事务之间发生共享数据冲突时,采用乐观并发控制方法,在验证过程中动态调整事务时戳区间,优先调度完成度高且触发更多事务的事务。在嵌套事务内部则采用基于优先级及关键性的封锁方法,保证了关键子事务的执行。通过采取这种混合的并发控制策略,提高了事务间的并发度,减少了不必要的事务重启,提高了系统的实时性能。 第五,研究了存取具有时间限制的数据的并发控制问题。实时数据库系统一个重要的特征是从环境中采集具有时间限制的数据。这一过程是由传感器事务所执行的。传感器事务是只读事务,不会对数据库的用户事务产生共享数据冲突。但是当存取该实时数据的事务提交之前数据变得无效,将导致得出错误的结果。提出了一个事务读取实时数据的有效性检查算法,保证了事务所读取的实时数据的截止期要大于该事务的截止期。在此基础上,提出了存取实时数据的乐观并发控制方法,在事务进入验证阶段进行验证调整,根据定义的调整规则,保证了事务提交的正确性。通过实例分析,该方法与不考虑数据截止期的并发控制策略相比,更加优越,更适用于实时应用环境。