论文部分内容阅读
随着大数据应用规模不断增加,海量数据的处理需求对计算机系统存储性能提出了更高的要求。基于传统磁盘的存储系统性能较低,由于其机械特征造成数据访问性能较低,已无法满足响应时间要求较高的大数据应用需求,与此同时,基于闪存的固态盘凭借其优秀的读写性能逐渐得到了广泛应用。相对于传统磁盘,基于闪存的固态盘具有读写性能高,能耗低,噪音小等优点,因此其逐渐被广泛应用到大规模存储系统中。但是,由于闪存介质本身物理特性,如读/写与擦除操作粒度不一致、擦除操作延迟较高以及写/擦除操作次数有限等,使得固态盘在实际应用过程中存在许多新的问题,固态盘内部垃圾回收操作会造成请求响应方面的性能抖动问题便是其中之一。通常这个问题不会受到研究者的关注和研究,但是其会引起用户I/0请求响应延迟较长,影响用户体验,尤其在实时交易类应用中,较大性能抖动会影响用户请求完成时间,严重时会造成交易数据错误,甚至造成关键数据的损失。为了解决垃圾回收引起的性能抖动问题,本文提出了一种针对写性能抖动优化的固态盘缓存管理算法CalmWPC。该算法主要包括基于簇的缓存数据组织结构,基于历史数据的缓存簇活跃度预测模块,以及基于固态盘缓存和闪存存储单元之间更新数据页感知的指纹库模块等。CalmWPC算法中,簇的数据组织是预测和指纹库模块的基础,通过聚簇能够尽可能将更新操作集中到一定地址范围内,并最终在同一闪存数据块内产生更多的无效数据页。预测模块基于缓存簇操作的历史记录,利用特定的预测算法计算出该簇在未来时间内的活跃度,并对这些缓存簇进行活跃度划分。指纹库模块作为固态盘缓存与闪存存储单元之间更新数据页的感知模块,使得请求数据写入固态盘缓存时就能够实时感知该数据相对于闪存来说是否为更新数据。CalmWPC算法的主要思想是通过替换出缓存中活跃度较低且更新数据页较多的缓存簇,一方面,减少活跃数据频繁写回闪存单元,提高每次缓存数据写回后垃圾回收的空间回收效率,尽可能避免频繁的垃圾回收对外部请求响应的影响,另一方面,通过分散方式执行垃圾回收操作,消除传统基于硬阈值的集中式垃圾回收操作的诸多弊端,进一步避免垃圾回收操作引起的写性能抖动的发生。实验结果证明,本文提出的CalmWPC算法能够有效降低写性能抖动,改善写访问平均延迟时间,优化写放大,进而能够提高固态盘性能并延长固态盘寿命。以Financial1负载为例,相比于传统的LRU和CFLRU算法而言,CalmWPC的写性能抖动平均方差比LRU和CFLRU分别降低了60.9%和60.0%,平均响应时间分别降低了69.4%和70.1%,写放大平均比LRU和CFLRU分别降低了16.3%和15.8%。