论文部分内容阅读
联机事务处理是数据库领域的重要应用。随着近年来电子商务的迅猛发展和企业数据量的激增,用户对数据库事务处理能力提出了越来越高的要求,而处理器技术和内存技术的发展也为提升数据库事务处理能力带来了机遇和挑战。一方面,多核CPU、GPU、Phi等新型处理器拥有越来越多的处理核心,并行处理能力非常强大;但是另一方面,事务处理过程中对数据的隔离性和一致性的保护又制约着处理器并发能力的提升。目前大多数的研究工作着眼于利用多核处理器的并行计算能力来提高事务型内存数据库的性能,但如何将并行计算能力更强的GPU应用于事务型内存数据库则少有研究。在GPU上实现事务型内存数据库的关键是要在保证ACID特性的前提下充分挖掘程序在GPU上的并行性,然而GPU上数量众多的并发线程和线程束内的锁步执行方式会严重放大数据冲突的影响,使得该问题的解决充满挑战。本文重点解决了事务并发执行,事务实时性保证,GPU设备内存管理等几个关键问题。针对事务并发控制的问题,本文借鉴了 Silo系统的事务提交协议,通过减少集中式资源的使用避免GPU线程的互相阻塞,并解决了对写集合加锁的死锁问题使之适应GPU的并行计算方式。针对事务处理实时性的保护,本文借鉴了 Mega-KV的以时间为标准的调度策略,设计了针对于GPU事务处理的调度流水线,保证了事务的实时性。针对事务的持久化问题,本文采用了 CPU/GPU协作模式,GPU将一个批次的事务作为一个持久化事务,由CPU将该持久化事务的日志信息记录到日志文件中。此外,为提升系统的运行效率,本文中还实现了 GPU设备内存管理器和无锁哈希表。本文主要工作和贡献如下:1.系统研究了在GPU上实现事务型内存数据库面临的困难与挑战,重点解决了事务并发控制、事务的实时性、事务持久性保障等关键技术问题。2.在NVIDIA GPU上实现了一个基于GPU的事务型内存数据库原型系统GPUTx-DB,该系统可在保证数据库事务ACID性质的同时充分利用GPU的并行计算能力。3.利用YCSB和TPC-C数据库基准测试程序对GPUTx-DB进行了性能测试和分析,并与多核处理器上的事务型内存数据库Silo进行了比较,验证了GPUTx-DB的处理能力。