论文部分内容阅读
随着全球数据的快速增长,大规模数据的产生对存储设备的存储密度提出了严峻考验.磁盘存储技术由于存储密度高,价格便宜,是大数据存储的一种非常重要的存储介质.但是目前磁盘广泛采用的垂直磁记录即将达到其密度极限,存储密度很难进一步增长,跟上数据规模增长的速度.因此,最新的瓦记录(Shingled Magnetic Recording,简写为SMR)技术通过磁道之间彼此部分重叠来提高存储密度,SMR技术正在逐步取代传统磁盘中的垂直磁记录方式,将成为未来很长一段时间内磁盘的主要形式.同时,随着Web 2.0应用的快速增长和云计算平台的大规模部署,相当一部分大数据存储于键值(Key-Value,简写为KV)存储系统.与传统关系数据库相比,KV存储具有更高的可扩展性和效率,适应大数据的要求.相对于B+树或哈希表,基于日志结构合并树(LSM树)的KV存储由于具有很好的写性能和范围查询能力,获得了广泛的使用.很多主流的KV存储系统都基于LSM树来进行数据管理,如BigTable、HBase、Cassandra和SSDB等.由于SMR硬盘存储密度高、价格便宜,基于SMR磁盘来构建大数据存储系统可以达到很大的容量和很高的性价比,例如基于SMR磁盘来构造基于LSM树的KV存储系统.但是SMR磁盘由于存在比较严重的写放大现象,随机写操作性能比较差.针对SMR的这个问题,本文提出用随机访问性能很好的闪存固态盘(Flash-based Solid State Drive,简写为SSD)和SMR磁盘构成混合存储,并基于这种混合存储进行基于LSM树的键值存储的性能优化,同时达到高性能、大容量和高性价比的目标.本文首先建立基于SSD-SMR混合存储的LSM树键值系统的性能模型,然后针对SSD和SMR的硬件特征以及LSM树键值存储的软件特点,设计了一套面向SSD-SMR混合存储进行性能优化的LSM树键值存储系统.具体来说,本文一方面针对SMR磁盘适合大粒度I/O的特点,通过提高写文件大小来降低SMR写放大,提高SMR的写性能;另一方面结合LSM树KV存储中不同存储对象的访问特征,提高SSD承担的I/O量的比例,从而提高KV存储整体的性能.基于以上方案,本文基于LevelDB实现了一套基于SSD-SMR混合存储的LSM树键值系统,在仅仅使用0.4%-2%空间的SSD的情况下,本文的方案可以使SSD-SMR混合存储方案比普通磁盘方案的随机写性能提高20%,随机读性能提高到6倍.