闪存数据库顺序和随机操作性能深度测试和分析

作者:陈学轩;吕雁飞;崔斌 刊名:计算机应用与软件 上传者:李爱平

【摘要】闪存作为一种可供替代磁盘的新型存储介质,已经开始越来越广泛地被个人和企业使用。固态硬盘(SSD)的速度大大超出磁盘,但因为数据库系统并未完全发挥闪存的特性,闪存数据库的性能并没有得到相应的提升。详细测试和研究SSD的顺序和随机操作的差异,进一步证明现代SSD具有较快的随机访问速度。选取具有代表性的数据库基准,调整各查询的查询计划,观察不同查询计划下数据库系统的性能。由此发现,某些查询计划可以更好地发挥出SSD的随机访问特性,其中某个查询的最佳性能甚至比使用默认的查询计划快6倍以上。最后,总结传统数据库系统面对SSD这一介质的短板,并提出一些优化的建议。

全文阅读

0引言闪存是近十年发展起来的一种速度快、功耗低、抗震强、体积小的存储介质。闪存近几年容量不断增长,越来越多的电子设备,尤其是移动设备,直接使用它来存储大量的数据。固态硬盘(SSD)使用闪存作为存储介质,它拥有闪存的一切优良特性,已经有替代磁盘的趋势。个人用户和计算机公司开始使用SSD作为存储介质。高端的个人电脑如ThinkpadX1就内置了SSD而非磁盘;百度公司已经用SSD全面替代磁盘存储搜索业务的后台信息,成为全球首个将该技术大规模商用的互联网公司。与磁盘相比闪存最大的优势在于其随机访问速度的提升。SSD的顺序访问与随机访问延时仅相差数倍,而磁盘的相应速度相差上百倍之多。特别是近年来,随着SSD技术的发展,其随机写速度也有很大提升,使得其顺序与随机访问的差距进一步缩小。传统数据库基于磁盘的访问特性进行查询计划的选择与优化,而SSD新的随机访问特性使得闪存数据库中需要重新考虑和调整查询优化策略。例如,TPC-H基准中的Q5查询连接了多个表,并带有区段筛选和排序。查询优化器就会对某些表使用表扫描操作来发挥磁盘顺序访问速度较快的优势,而在SSD上则可以改为使用索引,以减少数据的读取。顺序随机访问速度会大大影响查询执行方式的选择,而执行方式会对查询的性能造成重大影响。在我们测试分析发现,闪存上查询的性能在不同查询计划下有显著差别。目前已存在一些闪存数据库的测试和调优工作,比较有代表性的是Sang-WonLee[1]在部署在SSD的企业级数据库系统上进行的性能测试工作。他详细测试了数据库的各方面性能,包括日志系统、多版本控制(MVCC)、不同查询操作等。另外文献[2]讨论了在OLTP处理中数据库页面大小的选择问题。与已有工作不同的是,本文主要集中在固态硬盘的快速随机访问特性对数据库性能的影响及优化分析上,其优化难点在于其选择的多样性。我们测试发现在不同的随机程度下,固态硬盘的访问速度也不尽相同,而实际查询的访问模式和数据分布通常并不固定。接着我们分别选取查询较简单的TPC-B基准和查询相对复杂的TPC-H基准进行了性能测试。我们发现不同的查询计划下,查询性能差异明显,对某些查询来说使用默认的查询计划与最佳性能会相差6倍之多。总结起来,本文的主要贡献有以下几点:研究了磁盘和SSD的性能特征及其差异,尤其是其随机访问的性能差异。对TPC-B和TPC-H数据库进行了分析和优化,研究了不同的查询计划,其结果展示了对传统磁盘优化的数据库系统在面对SSD时所遇到的新挑战。分析发现,数据库系统的查询优化机制并未感知到SSD的存在,更没有对它做优化。SSD的性能特征并没有被利用好,从而阻止了它发挥自身强大的性能。1相关工作随着闪存技术的飞速发展,基于闪存的数据管理近年来成为热点研究问题。人们对于闪存的了解随着测试工作的进展逐步加深。uFLIP[3]是较早提出的一套测试闪存性能的标准,文章定义了9种基本访问模式基准来测试不同闪存设备的表现,并将结果整理发布,为更深入了解闪存特性,进一步优化性能提供了依据。张晓东等[4]测试了不同规格的SSD后指出,对于中高端SSD随机写入并不一定是性能瓶颈而随机读取一般慢于顺序读取操作甚至慢于随机写入。本文中的测试进一步表明了SSD在随机程度不同的访问模式下性能也有所不同,为数据库性能的优化提供了依据。此外,一些文章还进行了针对闪存芯片的相关测试,如文献[5]通过对比不同闪存芯片的稳定性与访问延时表现出了对闪存发展前景的忧虑。本年度FAST会议上的最佳论文[6]更是指出手机的性能瓶颈在闪存SD卡上,而闪存的瓶颈在手机数据库。这些工作与本

参考文献

引证文献

问答

我要提问