论文部分内容阅读
大数据时代的到来,对存储的性能提出了越来越高的要求,作为主流存储介质的硬盘也受到了更多挑战,因此利用缓存机制来加速硬盘访问的性能已成为一项愈加重要的技术.将读能力优秀SSD作为磁盘读缓存缓存,是一个加速效果非常明显的方案.将一些会被频繁访问的数据写入SSD缓存,可以减少磁盘I/O访问的次数,以提高硬盘的性能.但多数缓存算法需要频繁的缓存数据更新,会导致写入耐久性有限的SSD遇到使用寿命缩短的问题.因此除了命中率之外,SSD缓存设备的写入速度成为评价缓存替换算法的另一个关键指标.如何使缓存替换算法能够提高缓存数据的整体质量,提高缓存数据更新转化为缓存命中的效率,从而延长SSD的使用寿命,具有重要的研究意义.现有的传统缓存替换算法多数基于时间局部性进行设计,倾向于选择短期热门数据进行缓存,因此在保证高命中率的同时往往需要频繁的数据更新,这样会显著缩短SSD的使用寿命.也有一些改进算法能够减小一部分SSD缓存的写入量,主要的方法是随机地禁止一部分数据进入SSD(如L2ARC算法),或者去掉部分时间局部性差的数据(如LARC).这些方法只是在LRU等缓存短期热门数据的传统方法基础上,减少一部分数据写入SSD,并没有在数据选择方法上做出本质上的调整,从根本上改善SSD缓存中数据的质量,进而从根本上保持高命中率和减少写入量.本文面向SSD读缓存提出一种名为访问序列折叠(Folded Access Sequence,简写为FAS)的替换算法,用比较低的开销定位拥有长期稳定热度的数据作为SSD缓存对象,从而明显提高SSD中的缓存数据质量,在保证命中率的同时减少了SSD的写入量,延长其使用寿命.具体来说,FAS算法通过抽样的方法,将较长时间内的的访问记录在若干个连续的时间窗口内,并通过折叠窗口的方式,统计对各个数据块的访问在多个窗口中出现的次数占总窗口数的比例,将高于一定比值的数据筛选出来.这些数据在一定概率筛选的前提下仍然在多数时间窗口内出现,说明这些数据是比较稳定的长期热门数据,将其写入FAS的白名单中.在白名单中的数据块再次访问时会被允许进入SSD读缓存,反之不在白名单的数据不允许被缓存,这样既避免了频繁的数据更新,也能让高质量的长期热门数据较稳定地保持在SSD缓存中,从而用较少的SSD写入就能达到较高的缓存命中率.通过一系列基于仿真系统的实验,将FAS算法与一些典型的缓存算法进行比较.FAS算法相对于传统LRU算法可减少90%的写入量,而命中率损失仅不到10%.与SieveStore算法相比,在命中率相当的情况下写入量可减少50%~75%.在命中率在高于L2ARC算法的情况下,写入量至少可以减少50%,在局部性较好的情况下,写入量甚至可以减少90%.实验结果表明我们提出的访问序列折叠算法可有效地提高缓存数据质量,减少SSD的写入量,从而延长其使用寿命.