[发明专利]一种加速二级缓存预热的方法及装置有效
申请号: | 201410441302.2 | 申请日: | 2014-09-01 |
公开(公告)号: | CN104239231A | 公开(公告)日: | 2014-12-24 |
发明(设计)人: | 卢波 | 申请(专利权)人: | 上海爱数软件有限公司 |
主分类号: | G06F12/08 | 分类号: | G06F12/08;G06F17/30 |
代理公司: | 上海科盛知识产权代理有限公司 31225 | 代理人: | 赵继明 |
地址: | 201112 上海市闵行*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 加速 二级缓存 预热 方法 装置 | ||
技术领域
本发明涉及计算机存储技术领域,具体涉及一种加速二级缓存预热的方法及装置。
背景技术
当前,随着信息化技术的不断发展,人们需要保存的资料、数据越来越多,对存储容量的需求越来越大,而且各种应用程序随着软、硬件的升级,对存储设备的性能要求也越来越高。从存储领域来看,不管是传统的存储设备,还是基于软件定义的新型存储设备,为了实现性能最大化和成本最低化,各存储厂商往往采用基于混合存储池的分级存储方式,通过采用大容量的固态硬盘(SSD)或者NVRAM等非易失性存储设备作为缓存,实现对磁盘、磁带等持久化存储设备的二级或者多级缓存系统,达到性能和价格的一个均衡。这样的系统性能虽然上无法和新型的全闪存存储阵列媲美,但在价格上却有巨大的优势,而且性能比传统存储阵列要高很多。性能的提升主要是依据存储系统的局部性原理,通过将热点数据(频繁访问的特定区域)缓存在高速设备中来实现。
这些二级或者多级缓存系统,作为高速访问设备(内存)和低速访问设备(磁盘、磁带)之间的缓存,屏蔽了不同设备之间访问速度的差距,以有限的投资,即能取得较好的加速效果,但也存在一些问题:比如需要一定时间的预热,即需要存储系统运行一段时间后,通过被动或者主动(数据预取)的方式,将数据从磁盘重新加载到二级缓存设备。而事实上,通常二级缓存设备(如SSD)本身就具有非易失的特性(即所存储的数据不会因为设备断电而丢失的存储器),需要预热的原因,很大程度上是因为二级缓存设备上保存的是纯粹的数据块,没保存元数据(即数据存储的属性、位置等信息,用来对数据进行定位、查找),且数据也是无组织的,导致缓存与二级缓存在系统重新上电后,无法直接使用,而需要一个重新预热的过程。预热的时间随着二级缓存大小以及业务IO的特性而不同,有些存储系统甚至需要几天时间连续运行来实现预热。另一方面,二级缓存的空间是十分宝贵的,传统的存储将裸数无组织存放的另一个缺陷是空间浪费严重。
综上可知,在传统的二级缓存系统设计和实现上,存在预热时间过长和空间浪费严重的问题,有改进和优化的空间。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种加速二级缓存预热的方法及装置,针对基于混合存储池的系统,通过持久化和压缩二级缓存数据,提高了缓存数据预热的效率,同时也提高了二级缓存设备的利用率,一定程度上降低了存储设备的成本。
本发明的目的可以通过以下技术方案来实现:
本发明提供一种加速二级缓存预热的方法,该方法在二级缓存设备上保存与二级缓存数据相应的元数据,并对二级缓存数据进行压缩处理,实现二级缓存数据的写入和读取,其中,
所述二级缓存数据的写入具体为:
1)周期性扫描主缓存中的缓存数据,获得设定时间内使用次数量少的数据及其相应元数据,该元数据包含主缓存与二级缓存设备间的映射关系;
2)对步骤1)获得的数据进行压缩处理;
3)将步骤2)中压缩后的数据及步骤1)中的元数据写入二级缓存设备;
所述二级缓存数据的读取具体为:
遍历二级缓存设备上的元数据,读取二级缓存设备中的数据并解压缩后,根据元数据中的映射关系,将数据加载到主缓存中。
所述元数据由超级块、索引块和索引块指针组织而成。
所述遍历二级缓存设备上的元数据具体为:
a)读取超级块,开始遍历元数据;
b)判断当前超级块所对应的索引块是否遍历完,若是,则结束,若否,则执行步骤c);
c)判断当前索引块所对应的索引块指针是否遍历完,若是,则返回步骤a),若否,则执行步骤d);
d)读取数据并解压缩,返回步骤c)。
数据加载到主缓存中后,应用程序读取数据时,首先判断是否在主缓存中命中数据时,若是,则直接从主缓存中读取,若否,则向磁盘设备读取,有效避免频繁向磁盘设备发起I/O请求。
所述二级缓存设备包括SSD或NVRAM。
本发明还提供一种加速二级缓存预热的装置,包括:
异步扫描模块,用于周期性扫描主缓存中的缓存数据,获得设定时间内使用次数量少的数据;
压缩模块,用于对写入二级缓存设备的数据进行压缩或对从二级缓存设备读取的数据进行解压缩;
异步预热模块,用于将二级缓存设备中的数据加载到主缓存。
所述异步预热模块包括:
元数据遍历单元,用于遍历二级缓存设备中保存的元数据;
数据传输单元,用于根据元数据遍历结果读取二级缓存设备中的数据并传输给压缩模块。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海爱数软件有限公司,未经上海爱数软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410441302.2/2.html,转载请声明来源钻瓜专利网。