收藏本站
《中国科学技术大学》 2017年
收藏 | 手机打开
二维码
手机客户端打开本文

基于闪存的索引机制研究

杨程程  
【摘要】:随着闪存存储器制作工艺的不断发展,闪存的存储密度大幅提高,基于闪存芯片阵列的固态硬盘(Solid State Drive,SSD)应运而生并迅速普及于工业界的存储系统和桌面PC。由于和传统磁盘有相同的物理和逻辑接口,SSD被视为存储系统革新的关键技术,学术界和工业界都对SSD完全取代磁盘持乐观态度。然而,SSD具有不同于磁盘的独特特性,如闪存的写前擦除机制,读写不均衡,擦除次数有限等,使得原有在磁盘上的数据管理算法不能充分发挥SSD的性能。因此,针对SSD特性研究设计适合于SSD上的数据管理新方法非常重要。索引对数据检索至关重要,使用索引可快速访问海量数据中的特定信息。传统的索引机制是面向I/O对称的磁盘设计,索引的更新造成大量随机写操作。由于闪存的随机写性能较差,如果将传统的索引机制直接应用在闪存上,并不能获得理想的性能提升。因此,近年来基于闪存的索引机制研究引起了学术界的重视。目前基于闪存的索引机制研究按索引结构大致可分为三类:(1)基于闪存的哈希索引机制研究;(2)基于闪存的树型索引机制研究;(3)基于闪存的位图索引机制研究。已有研究都是以减少对闪存的随机写为目标,主要用到以读换写、批量更新、异位更新、及转化随机写为连续写等技术手段。本论文分析了已有研究关键技术的不足:(1)虽然减少了对SSD的随机写操作,但是造成了大量的额外读操作,考虑到目前SSD内部控制技术的成熟,读写差异相较之前大幅缩小,大量额外读操作反而降低了总体性能;(2)在更新密集的数据集下表现出良好性能,但是在查询密集数据集下性能与原索引差距明显;(3)基本未考虑利用SSD内部并行机制来进一步提升性能。因此,需要针对先进的读写差异接近的SSD,研究适应于更普适应用数据集的索引机制。本文聚焦于哈希索引和B+-树,提出了随着访问模式动态调整的线性哈希,并进一步对该索引进行查询优化;本文还为读写优化的B+-树索引提供了理论基础。提高索引读写性能,离不开缓冲区,本论文讨论了树型索引访问特性和面向闪存的缓冲区算法设计原则之间的矛盾。传统基于闪存的缓冲区算法给脏页面特殊优先级以减少随机写,在这类算法应用场景中,树型索引内部结点比叶子结点更易被替换出缓冲区,因为内部结点比叶子结点有更高的干净概率。另一方面,内部结点比叶子结点访问频率高很多,替换出这些结点会降低命中率。论文提出了综合页面访问概率、访问临近信息以及页面是否为脏来选择替换页面的算法,成功解决了上述问题。本论文的贡献点如下:(1)提出了随着访问模式动态调整的自适应线性哈希索引(Self-Adaptive Linear Hashing,SAL-hashing)。该索引使用了批量更新的技术,同时引入了组(group)和集合(set)的概念来提升批量更新的效率。对索引的更新先缓存在内存,然后以set为粒度向索引批量刷新更新操作到set对应的日志区。此外,该索引根据各set的访问倾向性实时决定是否将日志区与对应的set合并。对于读倾向的set,及时将日志区合并到set对应的bucket中,后续的查询可以避免额外的读日志区;对于写倾向的set,保留其日志区以保持批量更新效率。此外,在合并日志区到对应bucket时,通过粗粒度写操作来利用SSD内部并行特性,从而提升写带宽。(2)分析了线性哈希的溢出链与分裂点的关系,并在SAL-hashing的基础上提出了一个高内存效率的数据结构,使几乎每一个bucket上的查询只需要一次读操作,查询效率与可扩展哈希相当。此外,还讨论了 SAL-hashing对事务支持和故障恢复的能力。(3)提出了一种适应于树型索引的缓冲区算法,结合结点被访问概率和访问临近信息权衡页面冷热,并根据页面是否是脏页面选择替换页。此外,该算法将脏页面打包,采用粗粒度写来批量刷新冷脏页面,避免细粒度随机写操作。(4)针对本实验室提出的读写优化的B+-树索引,完善了理论分析,讨论了索引的并发访问,并重新设计了实验,同时给出详细的结果分析。
【关键词】:SSD 读写不对称 内部并行 线性哈希 缓冲区管理 B+-树
【学位授予单位】:中国科学技术大学
【学位级别】:博士
【学位授予年份】:2017
【分类号】:TP333
【目录】:
  • 摘要5-7
  • ABSTRACT7-17
  • 第1章 绪论17-35
  • 1.1 研究背景18-24
  • 1.1.1 闪存芯片简介及其特性20-21
  • 1.1.2 SSD简介及其特性21-24
  • 1.2 国内外研究现状24-31
  • 1.2.1 基于闪存的索引机制研究24-29
  • 1.2.2 基于闪存的缓冲区管理算法研究29-30
  • 1.2.3 现有研究存在的主要问题30-31
  • 1.3 研究意义31-32
  • 1.4 研究内容32-33
  • 1.5 本文的主要贡献和创新点33-34
  • 1.6 本文的组织结构34-35
  • 第2章 面向固态硬盘的自适应线性哈希索引35-61
  • 2.1 引言35-37
  • 2.2 相关研究工作37-39
  • 2.2.1 基于磁盘的线性哈希实现方案37-39
  • 2.2.2 基于闪存的哈希索引研究现状39
  • 2.3 SAL-hashing设计39-49
  • 2.3.1 group和set定义39-41
  • 2.3.2 SAL-hashing总览41-46
  • 2.3.3 自适应控制算法46-49
  • 2.4 SAL-hashing代价分析49-51
  • 2.4.1 批量更新代价分析49-50
  • 2.4.2 Log Region探测的代价分析50-51
  • 2.5 实验结果51-59
  • 2.5.1 实验设置及数据集51
  • 2.5.2 插入和查询性能51-54
  • 2.5.3 访问局部性的影响54-56
  • 2.5.4 查询/更新比例的影响56-58
  • 2.5.5 参数g的影响58-59
  • 2.6 总结59-61
  • 第3章 基于固态硬盘的自适应线性哈希读优化研究61-79
  • 3.1 引言61-62
  • 3.2 面向SAL-hashing溢出页的读优化62-69
  • 3.2.1 溢出桶数目分析62-65
  • 3.2.2 溢出桶查询优化65-68
  • 3.2.3 批量更新代价模型修正68-69
  • 3.3 事务支持和故障恢复69-71
  • 3.4 实验结果71-77
  • 3.4.1 实验设置及数据集71-72
  • 3.4.2 插入和查询性能72-74
  • 3.4.3 访问局部性的影响74
  • 3.4.4 查询/更新比例的影响74-75
  • 3.4.5 主桶分裂比例sf的影响75-77
  • 3.5 总结77-79
  • 第4章 基于固态硬盘的树型索引缓冲区算法研究79-99
  • 4.1 引言79-81
  • 4.2 相关研究工作81-83
  • 4.2.1 SSD相关特性81
  • 4.2.2 面向SSD的缓冲区管理算法81-82
  • 4.2.3 面向SSD的树型索引更新日志管理82-83
  • 4.3 CFDRW算法83-88
  • 4.3.1 CFDRW总览83-85
  • 4.3.2 页面热度的鉴定85-87
  • 4.3.3 页面替换算法87-88
  • 4.4 粗粒度写技术88-92
  • 4.4.1 总体思路88-89
  • 4.4.2 粗粒度写的实现89-90
  • 4.4.3 粗粒度写的代价分析90-92
  • 4.5 实验结果92-98
  • 4.5.1 实验设置及数据集92-93
  • 4.5.2 合成数据集上的实验结果93-96
  • 4.5.3 OLTP数据集上的实验结果96
  • 4.5.4 写粒度对性能的影响96-98
  • 4.6 总结98-99
  • 第5章 基于固态硬盘的B+-树索引读写优化研究99-129
  • 5.1 引言99-100
  • 5.2 相关研究工作100-102
  • 5.3 BloomTree总览102-107
  • 5.3.1 设计动机102-104
  • 5.3.2 BloomTree结构104-105
  • 5.3.3 BF-leaf结构105-106
  • 5.3.4 选择active结点106
  • 5.3.5 BF-leaf构建和分裂106-107
  • 5.3.6 BloomTree上的操作107
  • 5.4 并发操作107-109
  • 5.5 代价分析109-114
  • 5.5.1 Bloom Filter的影响109-111
  • 5.5.2 分裂代价111
  • 5.5.3 查询代价111-114
  • 5.6 实验结果114-127
  • 5.6.1 实验设置114-116
  • 5.6.2 I/O计数116-118
  • 5.6.3 分裂次数118-119
  • 5.6.4 时间性能119-121
  • 5.6.5 参数的影响121-124
  • 5.6.6 拓展实验124-127
  • 5.7 总结127-129
  • 第6章 结束语129-133
  • 6.1 本文的主要工作129-130
  • 6.2 本文的主要贡献130
  • 6.3 未来研究工作130-133
  • 参考文献133-143
  • 致谢143-145
  • 在读期间发表的学术论文145-147
  • 在读期间参与的科研项目147

【相似文献】
中国期刊全文数据库 前10条
1 潘鹏;卢炎生;彭祥礼;;基于位置变化的轨迹单元划分及索引机制[J];小型微型计算机系统;2006年11期
2 陈雍;谢旭升;魏根芽;;Oracle B*树索引内部机制及其应用的研究[J];计算机与现代化;2008年10期
3 高玉良;张济强;白瑶;;基于Lucene的多索引搜索的研究与应用[J];电脑知识与技术;2012年07期
4 陈仲肃;;浅谈索引失效原因、对策及其应用[J];软件;2012年07期
5 周英华;金培权;岳丽华;龚育昌;;基于位置的web搜索索引研究[J];中国科学技术大学学报;2007年02期
6 赵娟娟;;嵌入数据库索引机制及特点研究[J];硅谷;2011年02期
7 耿庆田;狄婧;常亮;赵宏伟;;基于B+树的数据索引存储[J];吉林大学学报(理学版);2013年06期
8 张翀;肖卫东;杨晓亮;;基于对等计算的分布式时空索引模型建立与整体框架研究[J];计算机应用研究;2012年03期
9 刘小珠;彭智勇;;基于分配空间自学习的在线动态索引混合更新机制[J];计算机研究与发展;2012年10期
10 韩恺,蔡荣峰,岳丽华,龚育昌;一种高效的XML路径查询索引[J];计算机工程与科学;2005年11期
中国重要会议论文全文数据库 前5条
1 崔铁军;张利;;多尺度海量栅格数据索引机制的研究[A];中国地理信息系统协会第八届年会论文集[C];2004年
2 张新宇;王珊;陈红;杜小勇;;基于三级索引机制的并行数据仓库的存储结构[A];第十九届全国数据库学术会议论文集(研究报告篇)[C];2002年
3 梁骞;冯玉才;闵革勇;;一种面向对象的索引机制[A];第十五届全国数据库学术会议论文集[C];1998年
4 陈占龙;吴信才;谢忠;吴亮;;分布式空间数据索引机制研究[A];2007年全国开放式分布与并行计算机学术会议论文集(下册)[C];2007年
5 陈庆章;洪一丹;戴国勇;;密文数据库索引机制的研究[A];全国第19届计算机技术与应用(CACIS)学术会议论文集(上册)[C];2008年
中国博士学位论文全文数据库 前4条
1 杨程程;基于闪存的索引机制研究[D];中国科学技术大学;2017年
2 王鑫;原生XML数据库存储与索引关键技术研究[D];南开大学;2009年
3 王洪强;XML索引及查询处理技术研究[D];哈尔滨工业大学;2009年
4 潘鹏;时空数据库的索引机制及查询策略研究[D];华中科技大学;2007年
中国硕士学位论文全文数据库 前10条
1 塞贺;基于HDFS的小文件存储关键技术研究[D];广西大学;2016年
2 秦恒;HBase查询及索引机制研究[D];重庆邮电大学;2016年
3 梁云柯;MongoDB索引机制研究[D];重庆邮电大学;2016年
4 张慧云;结合分段伴图和B+树的云数据索引机制研究[D];江西理工大学;2016年
5 刘巧利;SD-VX索引的研究与应用[D];西安电子科技大学;2008年
6 杜红芳;个人数据空间管理系统查询与索引机制的研究与实现[D];北京交通大学;2011年
7 丁良奎;地震资料统一存取中索引机制的研究[D];东北石油大学;2013年
8 陈嘉;嵌入式主存数据库索引机制的研究与改进[D];湖南师范大学;2006年
9 王冬;基于动态结点流行度的B~+树索引研究[D];郑州大学;2014年
10 张河;组态实时数据库索引机制的研究与实现[D];中南大学;2008年
 快捷付款方式  订购知网充值卡  订购热线  帮助中心
  • 400-819-9993
  • 010-62791813
  • 010-62985026