论文部分内容阅读
近年来,随着计算机硬件技术的不断进步,特别是内存价格的不断下降、容量不断增大以及64位处理器的出现使得计算机可使用超过4GB的内存。这些技术的发展和应用,大大增加了内存数据库的实用性,从而促进了内存数据库技术的发展。内存数据库(Main Memory Database)系统将数据库的全部或者大部分基础数据放在内存中,处理前不需要从磁盘读取,处理后也不需要写回磁盘,节省了磁盘I/O。在这种应用环境下内存与处理器之间的数据交换成为了系统的主要瓶颈,因此发现瓶颈所在并提出优化方法是一个重要的研究课题。本文着重研究内存数据库在运行典型的应用负载时,处理器上所产生的性能瓶颈、优化方法以及内存数据库自身性能的评价问题。具体包括以下几个方面: 1.内存数据库在运行典型的应用负载时,处理器所带来的性能瓶颈是什么,如何对这种性能瓶颈进行量化分析,进而研究其优化方法。 2.在典型的数据库应用负载下,影响处理器性能瓶颈的因素有哪些,特别是数据库的存储体系结构、索引结构、处理器架构以及不同的应用负载对这种性能瓶颈会产生什么样的影响。 3.内存数据库自身的性能如何评价,如何设计一个更贴近于内存数据库应用领域测试集? 针对上述问题,本文致力分析和探索性能瓶颈、提出优化方法以及设计面向内存数据库应用领域的测试集等几个问题,本文的创新性工作包括: 1.针对内存数据库在现代处理器上的性能瓶颈问题,以具体的实验回答了数据库的不同存储体系结构如何影响处理器的缓存行为;处理器的不同体系结如何影响缓存性能;内存数据库和磁盘数据库的缓存行为差异是什么;索引结构对处理器缓存性能有何影响。研究结果,对于下一代“基于内存的大规模并行数据管理系统”在体系结构、索引技术、核心算法等方面的研究提供了重要的研究依据。 2.针对数据库在运行高并发负载是的性能瓶颈分析问题,提出了一种量化的分析方法,通过对应用环境中的各种参数(缓存大小、缓存命中率、工作负载的并发用户数、工作负载的数据量等)进行建模,对数据库在运行高并发负载时的处理器性能瓶颈进行了量化分析,发现了影响内存数据库在高并发负载下的性能瓶颈,这些研究结果为进一步提出优化方法提供了实验基础和依据。 3.针对内存数据库在运行计算密集型负载时处理器上产生的瓶颈,提出了一种基于预取的优化方法,该方法能够对内存数据库在运行计算密集型负载时的缓存性能进行优化,在缓存命中率、缓存系统带宽、处理器利用率等几个方面有较好的优化效果,使得系统充分地利用了现代处理器的先进的计算能力。 4.在预取优化方法的基础上,提出了一种动态预取的优化方法。动态预取的优化方法在优化中根据负载的变化动态调整预取距离,使得优化更加精准。尽可能地避免了无效预取,和简单预取相比,动态预取方法对缓存性能的优化更加稳定。 5.提出了一种面向电信运营应用的内存数据库测试集,该测试集对电信应用领域中的典型应用进行了建模。在负载构建方面,考虑了本地服务和漫游服务。在指标构建方面,尽可能完整刻画内存数据库性能特征。该测试集不局限于电信应用,还可以用于内存数据库在电力、金融、国防等领域中应用场景的性能评价。