论文部分内容阅读
由于XML具有自描述、语法简单、可扩展性强等优点,广泛应用于电子商务、电子政务等应用系统中,并发展成为数据交换和数据表示领域事实上的标准。随着XML数据量剧增,研究人员提出使用数据库技术来管理XML数据。为了保证多个用户并发访问的正确性和高效性,先后提出了多种XML并发控制协议,如基于实例加锁的并发控制协议,基于路径加锁的并发控制协议以及基于时间戳的并发控制协议等。相关研究表明,在对XML数据的操作中查询操作远远超过更新操作,显然这是一个事务冲突不太频繁的应用场景。与基于锁的悲观并发控制协议相比,乐观并发控制机制能够提供更好的并发性能。在XML乐观并发控制协议研究中,仅有OptiX等少数几种协议采用了乐观并发策略。OptiX协议是一种而向XPath接口的后向验证乐观并发控制协议,不支持DOM接口和前向验证策略,并发性能有待进一步改进。 另一方面,随着计算机内存价格不断下降和多核技术普及,一台服务器的内存容量可以达到TB级,CPU核数多达上百个。XML数据可以全部加载至内存中并视为一个XML内存数据库。由于数据存储在内存中,事务执行时间较短,持锁时间也较短,系统中冲突较少,所以在内存数据库中可以采用乐观并发控制方法提高系统并发性能。当前,研究人员主要面向基于文件的XML数据库管理系统开展研究,但是这些并发控制协议不能充分发挥内存数据存取速度快的优点,需进一步研究适合XML内存数据库的并发控制机制。 XML数据在内存中通常被构建为一棵DOM树,可以借鉴Java语言中高性能、线程安全集合类的设计,为XML数据设计一套线程安全的XML DOM树数据结构,保证多用户并发环境下操作的正确性和高效性。但是由于XML数据中的节点存在父子关系和兄弟关系,并不像队列或哈希表中的数据元素是相互独立的,因此设计线程安全的XML树形数据结构是非常困难的。 本文面向共享内存中的XML数据,研究多核环境下XML数据并发控制技术。一方面能够为编程人员提供一种面向共享内存XML数据的并发编程模型,简化并发操作XML数据的难度、保证访问数据的一致性和操作结果的正确性。二是分别针对XPath接口和DOM接口研究XML乐观并发控制协议,为XML数据库系统提供高效乐观并发控制机制提供技术支持。 论文主要从以下几个方面开展研究工作: 首先,论文针对OptiX协议中事务冲突检测时间随着XML文档规模的增大而增加问题,提出了一套基于模型检测技术的XML乐观并发控制协议——XOCC-MC。借助模型检测技术,利用DTD中节点信息判断事务目标节点之间的祖先/后代关系,进而判断事务之间的冲突关系。此外,论文还针对协议并发性能低等问题,提出了一种基于缓存技术的改进方案,大大提高了事务吞吐率。 其次,OptiX协议是一种面向XPath接口的后向验证乐观并发控制协议,但传统的乐观并发控制研究结果表明前向验证乐观并发控制协议通常比后向验证乐观并发控制协议提供更好的事务性能。因此本文面向XPath接口研究了基于前向验证策略的XML乐观并发控制协议。 最后,由于面向DOM接口的、基于锁机制的悲观并发控制协议相关研究已经开展了很多,但是缺少面向DOM接口的XML乐观并发控制协议研究。因此,本文面向DOM接口分别研究基于前向验证策略和后验证策略的乐观并发控制协议。 基于上述研究内容,本文的主要创新成果总结如下: (1)首次将模型检测技术引入乐观并发控制协议中,面向XPath接口提出了一种基于模型检测技术的XML乐观并发控制协议——XOCC-MC。该协议首先将XML文档对应的DTD文档转换为状态迁移系统,然后在冲突检测阶段将事务操作中的XPath路径进行预处理并转换为对应的CTL公式,通过判断CTL公式在系统模型中是否成立来判断事务之间是否冲突。由于并不直接比较事务的读集和已验证并发事务的写集来决定事务之间是否冲突,所以该协议的冲突检测时间不会随着XML文档的增大而增长。由于该协议不需要记录事务的读集,内存空间占用少。在XML文档规模较大时,其性能优于OptiX协议。但不足之处是伪冲突发生的几率大、事务回滚率偏高。针对模型检测耗时长、事务吞吐率不高问题,论文在此基础上提出了改进的XOCC-MC+协议,通过缓存模型检测结果,大大减少了模型检测器求值的次数、提高了事务吞吐率。 (2)应用前向乐观并发控制策略,面向XPath接口提出了一种新的XML并发控制协议——XX-FOCC。不同于OptiX协议采用后向验证策略,该协议是基于前向验证策略而提出了一种面向XPah接口的XML乐观并控制协议。该协议通过检查当前事务的写集与正在运行事务的读集之间是否有交集来判断事务是否冲突。由于事务的写集往往是事务读集的一个子集,当前活动的事务数通常小于已验证通过事务的数量,加之只读事务可以不加验证就可直接提交等原因,与OptiX协议相比,XX-FOCC协议具有更高的事务吞吐率和更低的事务回滚率。 (3)由于DOM接口是XML操作接口的一个重要组成部分,本文面向DOM接口提出了一种新的XML后向验证乐观并发控制协议——X-BOCC-DOM。和OptiX协议类似,X-BOCC-DOM协议采用了后向验证策略,通过检查当前事务的读集和已验证事务的写集是否有交集判断事务是否冲突。由于具有和OptiX协议不同的操作模型,本文重新定义了事务的读集和写集,以提高冲突检测效率。该协议提供了和现有DOM操作接口相似的操作接口,并且提供了事务支持,大大降低了程序人员面向共享内存XML数据编写并发程序的难度。 (4)和X-BOCC-DOM协议类似,基于前向验证策略面向DOM接口提出了另一种新的XML乐观并发控制协议——X-FOCC-DOM。事务冲突判断类似XX-FOCC协议,事务读集和写集的构成与X-BOCC-DOM协议相同,实验表明X-FOCC-DOM协议比X-BOCC-DOM协议具有更好的事务性能。