CN103440207B - 缓存方法及装置 - Google Patents
缓存方法及装置 Download PDFInfo
- Publication number
- CN103440207B CN103440207B CN201310329769.3A CN201310329769A CN103440207B CN 103440207 B CN103440207 B CN 103440207B CN 201310329769 A CN201310329769 A CN 201310329769A CN 103440207 B CN103440207 B CN 103440207B
- Authority
- CN
- China
- Prior art keywords
- data block
- data
- memory medium
- deleted
- access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种缓存方法及装置,所述缓存方法包括:根据数据块的访问情况,确定需要从缓存空间中的非易失性存储介质上删除的待删除数据块;根据预设的数据回收条件选择待删除数据块从所述非易失性存储介质上删除。本发明的方法及装置,以减少读写不平衡、耐久性较差的非易失性存储设备的写入次数,延长非易失性存储设备的寿命。
Description
技术领域
本发明涉及计算机技术,尤其涉及一种缓存方法及装置。
背景技术
目前,为了提高闪存固态硬盘的使用寿命和性能,有方法对将要写入固态硬盘缓存的数据进行过滤来减少写入量,例如T.Pritchett等在ISCA’10上发表的论文“筛型存储:一种高选择性、高性价比的全局磁盘缓存(SieveStore:a highly-selective,ensemble-level disk cache for cost-performance)”就公开了一种过滤方法,该方法记录整个存储中每个数据块的缓存缺失数,只有缓存缺失数大于一定阈值的数据块才允许写入基于闪存固态硬盘的磁盘缓存,从而减少固态硬盘的写入量,延长闪存存储器的使用寿命。
但该方法只是在一定程度上减少闪存固态硬盘的写入量,并没有充分挖掘已缓存数据的潜力,有很多写入仍然是低效率、甚至是不必要的。特别是在缓存空间较小,缓存命中率较低的情况下,由于缓存缺失的数据块很多,因此满足过滤条件而进入闪存固态硬盘的数据块仍然数量巨大,固态硬盘的使用寿命难以得到保障。而且目前已有方法没有和闪存固态硬盘的内部数据存储特征紧密结合,会带来较大的写放大率,即同等数量的外部写入请求会带来很多倍的闪存芯片的实际写入量,加速耗尽闪存固态盘的寿命。
发明内容
本发明要解决的技术问题是:提供一种缓存方法及装置,以减少读写不平衡、耐久性较差的非易失性存储设备的写入次数,延长非易失性存储设备的寿命。
为实现上述目的,第一方面,本发明提供了一种缓存方法,包括:
根据数据块的访问情况,确定需要从缓存空间中的非易失性存储介质上删除的待删除数据块;
根据预设的数据回收条件选择待删除数据块从所述非易失性存储介质上删除。
结合第一方面,在第二种可能的实现方式中,所述方法还包括:
根据数据块的访问情况,确定需要写入非易失性存储介质的待写入数据块。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述方法还包括:根据预设的数据准入条件选择待写入数据块写入所述非易失性存储介质。
结合第一方面、第一方面的第二种或第三种可能的实现方式,在第四种可能的实现方式中,所述根据数据块的访问情况,确定需要从非易失性存储介质删除的待删除数据块包括:
在对数据块的访问为读请求时,根据数据块的访问信息,将所述非易失性存储介质上最不热门的数据块作为待删除数据块。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述数据块的访问信息包括:数据块的最近访问时间信息。
结合第一方面的第四种或第五种可能的实现方式,在第六种可能的实现方式中,所述数据块的访问信息包括:数据块的访问总次数信息。
结合第一方面的第四种至第六种中的任一种可能的实现方式,在第七种可能的实现方式中,所述数据块的访问信息包括:数据块的访问频率信息。
结合第一方面的第五种至第七种中的任一种可能的实现方式,在第八种可能的实现方式中,当数据块的访问信息中至少一个相应信息在设定的阈值之外时,判断所述数据块为最不热门的数据块。
结合第一方面的第四种至第八种中的任一种可能的实现方式,在第九种可能的实现方式中,根据所述非易失性存储介质数据更新频率的需要设置所述阈值。
结合第一方面的第九种可能的实现方式,在第十种可能的实现方式中,根据设定的间隔时间,周期性地进行所述非易失性存储介质上最不热门数据块的判断。
结合第一方面的第十种可能的实现方式,在第十一种可能的实现方式中,根据所述非易失性存储介质数据更新频率的需要设置所述间隔时间。
结合第一方面、第一方面的第二种至第十一种中的任一种可能的实现方式,在第十二种可能的实现方式中,所述根据数据块的访问情况,确定需要从非易失性存储介质删除的待删除数据块包括:
在对非易失性存储介质上的数据块的访问为写请求时,将所述被写请求访问的数据块作为所述待删除数据块,并将所述被写请求访问的数据块的存储地址指向非缓存存储空间。
结合第一方面、第一方面的第二种至第十二种可能的实现方式,在第十三种可能的实现方式中,所述方法包括:设置淘汰数据队列,用于存放所述待删除数据块的对应信息。
结合第一方面、第一方面的第二种至第十三种中的任一种可能的实现方式,在第十四种可能的实现方式中,所述数据回收条件包括:
所述待删除数据块的数量超过设定的第一阈值。
结合第一方面的第十四种可能的实现方式,在第十五种可能的实现方式中,所述选择待删除数据块从所述非易失性存储介质上删除的步骤包括:
选择含有所述待删除数据块最多的大数据块;其中,所述非易失性存储介质按照擦除单位大小的整数倍分成多个大数据块;
将所述大数据块上的数据块全部删除;
将所述大数据块上除了待删除数据块的其它数据块作为需要写入非易失性存储介质的待写入数据块。
结合第一方面、第一方面的第二种至第十三种中的任一种可能的实现方式,在第十六种可能的实现方式中,所述数据回收条件包括:
某个大数据块上的待删除数据块的大小与大数据块大小的比值超过设定的第二阈值;其中,所述非易失性存储介质按照擦除单位大小的整数倍分成多个大数据块。
结合第一方面的第十五种或第十六种可能的实现方式,在第十七种可能的实现方式中,所述大数据块的大小为所述非易失性存储介质擦除单位的大小。
结合第一方面的第十六种可能的实现方式,在第十八种可能的实现方式中,所述选择待删除数据块从所述非易失性存储介质上删除的步骤包括:
将所述大数据块上的数据块全部删除;
将所述大数据块上除了待删除数据块的其它数据块作为需要写入非易失性存储介质的待写入数据块。
结合第一方面的第二种至第十八种中的任一种可能的实现方式,在第十九种可能的实现方式中,所述根据数据块的访问情况,确定需要写入非易失性存储介质的待写入数据块的步骤包括:
在对数据块的访问为读请求时,根据数据块的访问信息,确定设定值个最热门的数据块;
将所述最热门的数据块中未缓存的数据块作为需要写入非易失性存储介质的待写入数据块。
结合第一方面的第十九种可能的实现方式,在第二十种可能的实现方式中,所述设定值个最热门数据块总的大小大于所述缓存空间的大小。
结合第一方面的第二十种可能的实现方式,在第二十一种可能的实现方式中,根据所述非易失性存储介质中空位的多少动态调整所述设定值。
结合第一方面、第一方面的第二种至第二十一种中的任一种可能的实现方式,在第二十二种可能的实现方式中,所述缓存空间还包括内存介质。
结合第一方面的第二十二种可能的实现方式,在第二十三种可能的实现方式中,所述方法还包括:
将当前读请求访问的未缓存数据块缓存至所述内存介质;
当所述内存介质已满时,将所述内存介质上最不热门的数据块从所述内存介质上删除。
结合第一方面的第十九种至第二十三种中的任一种可能的实现方式,在第二十四种可能的实现方式中,所述方法还包括:
设置最热门数据队列,用于存放所述设定值个最热门数据块的对应信息。
结合第一方面的第二十四种可能的实现方式,在第二十五种可能的实现方式中,根据数据块的热门程度对数据块在所述最热门数据队列中对应的位置进行排序。
结合第一方面的第二十四种或第二十五种可能的实现方式,在第二十六种可能的实现方式中,有未在所述最热门数据队列中的数据块被读请求访问时,将该数据块的对应信息加入所述最热门数据队列。
结合第一方面的第二十四种至第二十六种中的任一种可能的实现方式,在第二十七种可能的实现方式中,若所述最热门数据队列已满,在加入新数据块的对应信息时,删除所述最热门数据队列中排序最后的数据块对应信息。
结合第一方面的第三种至第二十七种中的任一种可能的实现方式,在第二十八种可能的实现方式中,所述数据准入条件包括:所述非易失性存储介质上具有空位。
结合第一方面的第三种至第二十八种中的任一种可能的实现方式,在第二十九种可能的实现方式中,根据数据块的热门程度选择待写入数据块写入所述非易失性存储介质。
结合第一方面的第三种至第二十九种中的任一种可能的实现方式,在第三十种可能的实现方式中,选择大小接近并小于大数据块容量整数倍的待写入数据块写入所述非易失性存储介质;其中,所述非易失性存储介质按照擦除单位大小的整数倍分成多个大数据块。
结合第一方面、第一方面的第二种至第三十种中的任一种可能的实现方式,在第三十一种可能的实现方式中,所述非易失性存储介质为闪存介质。
第二方面,本发明提供了一种缓存装置,包括:
逻辑缓存数据管理模块,用于根据数据块的访问情况,确定需要从缓存空间中的非易失性存储介质上删除的待删除数据块;
缓存空间回收模块,用于根据预设的数据回收条件选择待删除数据块从所述非易失性存储介质上删除。
结合第二方面,在第二种可能的实施方式中,所述逻辑缓存数据管理模块,还用于根据数据块的访问情况,确定需要写入非易失性存储介质的待写入数据块。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述装置还包括:
数据准入管理模块,根据预设的数据准入条件选择待写入数据块写入所述非易失性存储介质。
结合第二方面、第二方面的第二种或第三种可能的实现方式,在第四种可能的实现方式中,所述逻辑缓存数据管理模块包括:
第一访问管理单元,用于在对数据块的访问为读请求时,根据数据块的访问信息,将所述非易失性存储介质上最不热门的数据块作为待删除数据块。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述数据块的访问信息包括:数据块的最近访问时间信息。
结合第二方面的第四种或第五种可能的实现方式,在第六种可能的实现方式中,所述数据块的访问信息包括:数据块的访问总次数信息。
结合第二方面的第四种至第六种中的任一种可能的实现方式,在第七种可能的实现方式中,所述数据块的访问信息包括:数据块的访问频率信息。
结合第二方面的第五种至第七种中的任一种可能的实现方式,在第八种可能的实现方式中,当数据块的访问信息中至少一个相应信息在设定的阈值之外时,判断所述数据块为最不热门的数据块。
结合第二方面的第四种至第八种中的任一种可能的实现方式,在第九种可能的实现方式中,根据所述非易失性存储介质数据更新频率的需要设置所述阈值。
结合第二方面的第九种可能的实现方式,在第十种可能的实现方式中,所述第一访问管理单元根据设定的间隔时间,周期性地进行所述非易失性存储介质上最不热门数据块的判断。
结合第二方面的第十种可能的实现方式,在第十一种可能的实现方式中,所述装置还包括周期设置单元,用于根据所述非易失性存储介质数据更新频率的需要设置所述间隔时间。
结合第二方面、第二方面的第二种至第十一种中的任一种可能的实现方式,在第十二种可能的实现方式中,所述逻辑缓存数据管理模块包括:
第二访问管理单元,用于在对非易失性存储介质上的数据块的访问为写请求时,将所述被写请求访问的数据块作为所述待删除数据块,并将所述被写请求访问的数据块的存储地址指向非缓存存储空间。
结合第二方面、第二方面的第二种至第十二种可能的实现方式,在第十三种可能的实现方式中,所述装置包括:淘汰数据队列,用于存放所述待删除数据块的对应信息。
结合第二方面、第二方面的第二种至第十三种中的任一种可能的实现方式,在第十四种可能的实现方式中,所述缓存空间回收模块包括:
第一数据回收条件启动单元,用于在所述待删除数据块的数量超过设定的第一阈值时启动选择待删除数据块从所述非易失性存储介质上删除的步骤。
结合第二方面的第十四种可能的实现方式,在第十五种可能的实现方式中,所述缓存空间回收模块包括:
回收大数据块选择单元,用于选择含有所述待删除数据块最多的大数据块;其中,所述非易失性存储介质按照擦除单位大小的整数倍分成多个大数据块;
删除单元,用于将所述大数据块上的数据块全部删除;
有效数据处理单元,用于将所述大数据块上除了待删除数据块的其它数据块作为需要写入非易失性存储介质的待写入数据块。
结合第二方面、第二方面的第二种至第十三种中的任一种可能的实现方式,在第十六种可能的实现方式中,所述缓存空间回收模块包括:
第二数据回收条件启动单元,用于在某个大数据块上的待删除数据块的大小与大数据块大小的比值超过设定的第二阈值时启动选择待删除数据块从所述非易失性存储介质上删除的步骤;其中,所述非易失性存储介质按照擦除单位大小的整数倍分成多个大数据块。
结合第二方面的第十五种或第十六种可能的实现方式,在第十七种可能的实现方式中,所述大数据块的大小为所述非易失性存储介质擦除单位的大小。
结合第二方面的第十六种可能的实现方式,在第十八种可能的实现方式中,所述缓存空间回收模块包括:
删除单元,用于将所述大数据块上的数据块全部删除;
有效数据处理单元,用于将所述大数据块上除了待删除数据块的其它数据块作为需要写入非易失性存储介质的待写入数据块。
结合第二方面的第二种至第十八种中的任一种可能的实现方式,在第十九种可能的实现方式中,所述逻辑缓存数据管理模块包括:
第一访问管理单元,用于在对数据块的访问为读请求时,根据数据块的访问信息,确定设定值个最热门的数据块;
待写入数据块确定单元,用于将所述最热门的数据块中未缓存的数据块作为需要写入非易失性存储介质的待写入数据块。
结合第二方面的第十九种可能的实现方式,在第二十种可能的实现方式中,所述设定值个最热门数据块总的大小大于所述缓存空间的大小。
结合第二方面的第二十种可能的实现方式,在第二十一种可能的实现方式中,所述第一访问管理单元包括:
设定值动态调整子单元,用于根据所述非易失性存储介质中空位的多少动态调整所述设定值。
结合第二方面、第二方面的第二种至第二十一种中的任一种可能的实现方式,在第二十二种可能的实现方式中,所述缓存空间还包括内存介质。
结合第二方面的第二十二种可能的实现方式,在第二十三种可能的实现方式中,所述装置还包括:内存缓存管理模块,用于:
将当前读请求访问的未缓存数据块缓存至所述内存介质;
当所述内存介质已满时,将所述内存介质上最不热门的数据块从所述内存介质上删除。
结合第二方面的第十九种至第二十三种中的任一种可能的实现方式,在第二十四种可能的实现方式中,所述第一访问管理单元还包括:
最热门数据队列,用于存放所述设定值个最热门数据块的对应信息。
结合第二方面的第二十四种可能的实现方式,在第二十五种可能的实现方式中,所述第一访问管理单元包括:
第一最热门数据队列管理子单元,用于根据数据块的热门程度对数据块在所述最热门数据队列中对应的位置进行排序。
结合第二方面的第二十四种或第二十五种可能的实现方式,在第二十六种可能的实现方式中,所述第一访问管理单元包括:
第二最热门数据队列管理子单元,用于有未在所述最热门数据队列中的数据块被读请求访问时,将该数据块的对应信息加入所述最热门数据队列。
结合第二方面的第二十四种至第二十六种中的任一种可能的实现方式,在第二十七种可能的实现方式中,所述第一访问管理单元包括:
第三最热门数据队列管理子单元,用于若所述最热门数据队列已满,在加入新数据块的对应信息时,删除所述最热门数据队列中排序最后的数据块对应信息。
结合第二方面的第三种至第二十七种中的任一种可能的实现方式,在第二十八种可能的实现方式中,所述数据准入管理模块包括:
数据准入条件启动单元,用于在所述非易失性存储介质上具有空位时启动选择待写入数据块写入所述非易失性存储介质的步骤。
结合第二方面的第三种至第二十八种中的任一种可能的实现方式,在第二十九种可能的实现方式中,所述数据准入管理模块包括:
第一待写入数据块选择单元,用于根据数据块的热门程度选择待写入数据块写入所述非易失性存储介质。
结合第二方面的第三种至第二十九种中的任一种可能的实现方式,在第三十种可能的实现方式中,所述数据准入管理模块包括:
第二待写入数据块选择单元,用于选择大小接近并小于大数据块容量整数倍的待写入数据块写入所述非易失性存储介质;其中,所述非易失性存储介质按照擦除单位大小的整数倍分成多个大数据块。
结合第二方面、第二方面的第二种至第三十种中的任一种可能的实现方式,在第三十一种可能的实现方式中,所述非易失性存储介质为闪存介质。
本发明实施例的方法及装置将缓存的物理存储独立于逻辑缓存数据管理之外,选取高价值的缓存数据,同时提高了缓存数据的退出门槛,因此可以使高质量的缓存数据长时间地存储于非易失性存储介质的缓存之中,减少物理存储的缓存数据的更新频率,即减少了缓存空间的非易失性存储介质的擦除和写入次数,延长了所述非易失性存储介质的使用寿命。
本发明实施例将缓存数据管理与缓存的非易失性存储介质内部存储特征充分结合起来,每次删除数据都会对应非易失性存储介质的擦除单元,不会引入额外的写放大,显著减少了非易失性存储介质的写放大率,进一步延长了所述非易失性存储介质的使用寿命。
附图说明
图1为本发明实施例的一种缓存方法的流程示意图;
图2为本发明实施例的另一种缓存方法的流程示意图;
图3为本发明实施例的又一种缓存方法的示意图;
图4为本发明实施例的一种缓存方法中数据的物理回收和准入的示意图;
图5为本发明实施例的一种缓存装置的结构示意框图;
图6为本发明实施例的另一种缓存装置的结构示意框图;
图7为本发明实施例的又一种缓存装置的结构示意框图。
具体实施方式
本发明的方法及装置结合附图及实施例详细说明如下。
通常,高质量的缓存数据访问一般非常密集,但其中往往夹杂着一些较大的访问间隔,传统方法在遇到这些较大访问间隔时一般会将这些高质量的缓存数据删除,而之后又将其写入,如此反复多次,带来很多不必要的写入量,对于耐久性较差的缓存存储介质来说,大大缩短了其使用寿命。为了解决该问题,如图1所示,本发明实施例提供了一种缓存方法,包括:
S110:根据数据块的访问情况,确定需要从缓存空间中的非易失性存储介质上删除的待删除数据块;
S120:根据预设的数据回收条件选择待删除数据块从所述非易失性存储介质上删除。
这里所述的非易失性存储介质例如可以为闪存,也可为其它读写不平衡、写入耐久性较差的非易失性存储介质。
本发明实施例给出的缓存方法将缓存的物理存储独立于逻辑缓存数据管理之外,即通过步骤S110得到待删除数据块之后,并不是马上将其从所述非易失性存储介质上删除,而是在满足预设的数据回收条件之后,才将其物理的从所述非易失性存储介质上删除,提高了缓存数据的退出门槛,因此可以使高质量的缓存数据长时间地存储于非易失性存储介质的缓存之中,同时减少了缓存空间的非易失性存储介质的写入次数,延长了所述非易失性存储介质的寿命。
如图2所示,优选地,在本发明实施例的一种可能的实施方式中,所述方法包括:
S210:根据数据块的访问情况,确定需要从缓存空间中的非易失性存储介质上删除的待删除数据块、以及需要写入非易失性存储介质的待写入数据块;
S220:根据预设的数据回收条件选择待删除数据块从所述非易失性存储介质上删除;
S230:根据预设的数据准入条件选择待写入数据块写入所述非易失性存储介质。
在本实施方式中,除了将需要从所述非易失性存储介质上退出的数据先进行逻辑管理,再在满足设定的回收条件时才物理地从所述非易失性存储介质上删除外,还对需要写入的数据进行逻辑管理,并在满足准入条件时才写入所述非易失性存储介质。通过较低开销选取高价值的缓存数据,进一步减少所述非易失性存储介质的写入量,延长其使用寿命。
在本发明实施例的一种可能的实施方式中,以所述非易失性存储介质为闪存介质为例,缓存空间中包括闪存介质来说明本实施方式。在本发明实施例的其它可能的实施方式中,所述非易失性存储介质还可以为其它耐久性较差的存储介质,或者所述缓存空间中还可以包括所述非易失性存储介质和内存介质,或者还可能除了所述非易失性存储介质和内存介质之外,还包括其它可能的存储介质。
在本实施方式中,所述数据块的访问情况包括数据块是被读请求访问还是写请求访问、以及访问的具体信息的情况。所述步骤S210包括:在对数据块的访问为读请求时,根据数据块的访问信息,将所述非易失性存储介质上最不热门的数据块作为待删除数据块。
其中,根据数据块的访问情况,所述待删除数据块被不断更新。
在本发明实施例的实施方式中,所述数据块的访问信息包括:数据块的最近访问时间信息、或数据块的访问总次数信息、或数据块的访问频率信息、或者其它表示数据块访问情况的信息;或者数据块的访问信息包括上面各信息中两个或者多个的组合。
本实施方式中数据块的“热门”可以是按照数据块的访问情况进行排序,得到数据块的热门程度:例如按照数据块的访问时间对数据块进行排序,其中访问时间越接近当前时间的数据块越热门,反之越不热门;或者,例如按照数据块的访问总次数对数据块进行排序,其中访问总次数越多的数据块越热门,反之越不热门;或者,例如按照数据块的访问频率对数据块进行排序,其中,访问频率越高的数据块越热门,反之越不热门;或者可以根据访问情况的多种信息(例如每种信息占各自的权重)共同对数据块进行排序,来对数据块的热门程度进行确定。
优选地,在本实施方式中,当数据块的访问情况中至少一个相应信息在设定的阈值之外时,判断所述数据块为最不热门的数据块。例如,与所述数据块的最近访问时间信息对应的设定有一阈值,当数据块的最近访问时间在该阈值以外时,则该数据块即为最不热门的数据块,需要从所述闪存上删除。当然,这里所述至少一个相应信息在设定的阈值之外的一种特殊的形式可能为至少一个相应信息在设定的阈值之内。
优选地,在本实施方式中,与所述访问情况的相应信息对应的阈值可以根据所述闪存数据更新频率的需要设置。例如,以数据块的最近访问时间对应的阈值为例,当该阈值设置成数据块的最近访问时间距离当前时间的差值越大,则数据块成为不热门数据块的几率就越小,在所述闪存上停留的时间就越长,数据的更新频率就越低。因此,根据所述闪存上数据更新频率的需要来设置所述阈值。
优选地,在本发明实施例的一种可能的实施方式中,根据设定的间隔时间,周期性地进行所述非易失性存储介质上最不热门数据块的判断。
这里,设定的间隔时间越长,闪存介质数据的更新频率就越低,写入量越少,因此可以根据所述闪存介质数据更新频率的需要设置所述间隔时间。在本实施方式中,所述步骤S220还包括:在对闪存介质上的数据块的访问为写请求时,将所述被写请求访问的数据块作为所述待删除数据块,并将所述被写请求访问的数据块的存储地址指向磁盘。被写请求访问的数据块是需要被更新的数据块,因此没有必要继续保留在缓存中,但是如果直接对闪存介质上的数据块进行更新则会带来额外的写操作,本实施方式中,首先将其作为待删除数据块,并将其地址指向磁盘,则读请求再次访问该数据时,则会直接访问到磁盘上写请求更新后的数据块,这样,可以进一步减少闪存介质的写放大。
闪存芯片内部的读写单位一般比较小(4KB~16KB),而擦除单位一般是几十至上百个读写单位。这两个单位的不同,造成了闪存中独特的写放大现象,即为了擦除一个擦除单位,必须将其内部的有效数据先搬移到空白块上,这个过程就产生了上层应用请求之外的额外写操作,写放大可能达到几十至几百倍,会加速闪存的损耗。因此,在本实施方式中,所述闪存介质按照擦除单位大小的整数倍分成多个大数据块;在对大数据块上的数据进行擦除时,并不将上面的有效数据进行物理上的缓存,而是先将其作为逻辑上需要被缓存的待缓存数据块,在数据准入条件满足时,才将其物理缓存,减少了写放大,具体如下:
优选地,在本发明实施例的一种可能的实施方式中,所述步骤S220中的数据回收条件包括:所述待删除数据块的数量超过设定的第一阈值。
在本实施方式中,所述步骤S220具体包括:
在所述待删除数据块的数量超过设定的第一阈值时,选择含有所述待删除数据块最多的大数据块;
将所述大数据块上的数据块全部删除;
将所述大数据块上的其它数据块作为需要写入闪存介质的待写入数据块并从所述闪存介质上删除。
根据闪存介质的特性,对闪存介质上存储的数据块进行擦除时,必须是以最小擦除单位的整数倍进行擦除,因此在擦除单位上还有其它非待删除数据块时,也不得不将这些数据块删除,将其作为待写入数据块,在数据准入条件达到时,再将其写回闪存介质;对于待删除数据块,则直接将其从闪存介质上删除就行,不需要再进行其它操作。
在本实施方式中,优选地,所述大数据块的大小为所述闪存介质擦除单位的大小,例如每个大数据块就是一个擦除单位,这样提高闪存介质的更新效率。在本实施方式的其它实施例中,所述大数据块的大小还可以为所述擦除单位的多倍,这样可以进一步减少对闪存介质的写操作,减少写放大。
优选地,在本实施方式中,所述数据回收条件还包括:某个大数据块上的待删除数据块的大小与大数据块大小的比值超过设定的第二阈值。
此时,所述步骤S220包括:
当某个大数据块上的待删除数据块的大小与大数据块大小的比值超过设定的第二阈值时:
将所述大数据块上的数据块全部删除;
将所述大数据块上的其它数据块作为需要写入闪存介质的待写入数据块并从所述闪存介质上删除。
在本实施方式中,所述数据回收条件包括上面所述的两种,其中任一个条件达到时,都进行闪存介质上大数据块的擦除操作。在本发明实施例的其它可能的实施方式中,所述数据回收条件也可以仅包括上面所述数据回收条件中的一种。
同样的,本领域技术人员可以知道,当所述第一阈值和第二阈值设置的越大时,对闪存介质的物理擦除操作越少,因此可以根据闪存数据更新频率的需要设置所述第一和第二阈值。
优选地,在本实施例中,确定需要写入闪存介质的待写入数据块的步骤包括:
在对数据块的访问为读请求时,根据数据块的访问信息,确定设定值个最热门的数据块;这里所述的数据块的访问信息包括上面所述的访问信息中的一种或多种;
将所述最热门的数据块中未缓存的数据块作为需要写入闪存介质的待写入数据块。
这些待写入数据块确定后,作为候选数据块,在闪存介质的数据准入条件满足时,就可以被选择写入闪存介质中。
优选地,在本发明的一种可能的实施例中,所述设定值个最热门数据块总的大小略大于所述缓存空间的大小。这样可以使得数据准入条件满足时,可以选择出足够的待写入数据块写入闪存介质中。
为了减少系统计算和存储元数据的开销,优选地,根据所述闪存介质中空位的多少动态调整所述设定值,即数据准入计算时,如果所有待写入数据块的大小显著多于闪存介质上的空位,则可以适当减小所述设定值的大小;如果所有待写入数据块的大小少于闪存介质上的空位,则可以适当增大所述设定值的大小。
在本发明实施例的一种可能的实施方式中,所述数据准入条件包括:所述闪存介质上具有空位。
即在本发明实施例中,并不是有需要闪存的数据块就马上写入闪存介质上,而是等待闪存介质上有空位的时候,才写入需要闪存的数据块,大大降低了闪存的写入量。这里闪存介质上的空位有可能是闪存介质没有存满时存在的,也有可能是由于上面所述的数据回收过程对闪存介质进行擦除操作后形成的。
本实施方式在所述步骤S230中,优选地,可以根据数据块的热门程度选择待写入数据块写入所述闪存介质。这样就可以保证写入闪存介质的数据块的价值更高,更有可能被命中。
在本发明实施例的其它可能的实施方式中,优选地,选择大小接近并小于大数据块容量整数倍的待写入数据块写入所述闪存介质。这样的优点是,使得大数据块上尽量被同一个数据块覆盖,使得在对数据块进行删除时,可以整体对大数据块进行直接删除,减少大数据块上不需要被删除数据的写入量。
下面以缓存空间包括闪存介质和内存介质为例来说明本发明实施例的一种可能的实施方式。如图3所示,本实施方式与上面所述的实施方式相似,不同的是,在本实施方式中,除了所述缓存空间以外,系统还包括存储空间,所述存储空间例如可能为磁盘。数据存储在磁盘,当数据块需要被缓存时,首先缓存在内存介质上,在内存介质已满时,再将内存介质中退出的数据缓存在闪存介质上。可以看出,在内存介质上缓存的数据块,总是最热门的数据块(这里热门的定义与上面实施方式中的相同);又由于设定值个最热门数据块总的大小略大于所述缓存空间的大小,因此可以得到,只要在内存介质上缓存的数据块必然为所述设定值个最热门数据块中的一个。
如图3所示,在本发明实施例的一种可能的实施方式中,优选地,所述方法还包括,设置:
最热门数据队列,用于存放上面实施方式所述的设定值个最热门数据块的对应信息;
淘汰数据队列,用于存放所述待删除数据块的对应信息;
活跃数据队列,用于存放闪存介质上存储的除了在最热门数据队列和淘汰数据队列中的数据块的其它数据块的对应信息。
其中,根据数据块的热门程度对数据块在所述最热门数据队列中对应的位置进行排序,在本实施方式中,例如可以按照数据块的最近访问时间对最热门数据队列中的数据块进行排序,将最近被读请求命中的数据块的对应信息放在队首,按照先进先出的顺序,最早被读请求命中的数据块的对应信息则位于队尾。
其中,当被读请求命中的数据块在所述最热门数据队列中时,将其的位置放到该队列的队首;当有未在所述最热门数据队列中的数据块被读请求访问时,则将该数据块的对应信息加入所述最热门数据队列的队首,其中,若所述最热门数据队列已满时,则在加入新数据块的对应信息时,删除所述最热门数据队列中排序最后(也即位于队尾)的数据块的对应信息。由上可知,所述最热门数据队列中数据块总的大小略大于整个缓存空间的大小,并且内存介质上总是缓存最最热门的数据块,因此,内存介质上存储的数据是不会从所述最热门数据队列上被删除的。因此,当从所述最热门数据队列上删除的数据块是未缓存(即只存在磁盘上)的数据块时,则直接将其的对应信息从所述最热门数据队列中删除即可;当从所述最热门数据队列上删除的数据块是闪存介质上存储的数据块时,则将其对应信息从所述最热门数据队列中删除后加入所述活跃数据队列。
在本实施方式中,所述热门数据队列中数据块的对应信息包括:
数据块的全局唯一标识、数据块的物理存储位置(内存介质、闪存介质或磁盘)信息以及访问次数。这些信息可以包含在数据块的元数据中。
所述活跃数据队列一般按照先进先出的顺序管理被上述热门数据队列删除的缓存数据块,其中数据块的对应信息包括:
数据块的全局唯一标识、数据块的物理存储位置信息、数据块的访问次数以及数据块迄今为止的空闲时间(即上次访问到现在的距离)。
如果热门数据队列选择LRU(Least Recently Used,最近最少使用算法)方式进行数据管理时,用户请求到达后,对以上热门数据队列和活跃数据队列的更新按照下述步骤进行处理:
A、如果用户请求是读请求:
如果用户请求命中热门数据队列的数据块,且命中的数据块物理存储于内存或闪存介质,则将命中数据块的访问次数加1,并将该数据块提升到热门数据队列的队首;
如果用户请求命中热门数据队列中的数据块,且命中的数据块物理存储于磁盘(未缓存),则将此数据块在热门数据队列中的物理存储位置信息改为内存,访问次数加1,并提升到所述热门数据队列的队首;然后将其写入内存,如果内存已满,则将内存中排名最后的一个数据块删除,并在热门数据队列中将该数据块的物理存储位置信息改为磁盘;
如果用户请求命中活跃数据队列或淘汰数据队列中的数据块,则将命中数据块的信息从对应队列中删除,将数据块的访问次数加1、空闲时间置0,并将该数据块放置于热门数据队列的队首。如果热门数据队列长度超过限制,则删除最后一个数据块的对应信息:如果这个数据块的的物理存储位置信息为磁盘,则直接删除,并将活跃数据队列中所有数据块的空闲时间加1;如果这个数据块的物理存储位置信息为闪存介质,则将该数据块的对应信息放置于活跃数据队列的队首,并将该数据块的空闲时间设为热门数据队列的长度;
如果用户请求没有命中上述任何一个队列,则新增一个数据块,并将该数据块放入热门数据队列的队首,然后将其写入内存,并将其物理存储位置信息标记为内存,如果内存已满,则将内存中排名最后的一个数据块删除,并在热门数据队列中将该被删除数据块的物理存储位置信息标记为磁盘。如果热门数据队列长度超过限制,则删除热门数据队列中最后一个数据块,如果这个数据块的物理存储位置信息为磁盘,则直接删除,并将活跃数据队列中所有数据的空闲时间加1;如果这个数据块的物理存储位置信息为闪存介质,则将该数据块放置于活跃数据队列的队首,并将该数据块的空闲时间设为热门数据队列的长度。
B、如果用户请求是写请求:
如果用户请求命中热门数据队列或活跃数据队列,则将命中数据块的对应信息从对应队列中删除,如果命中数据块的物理存储位置信息为内存,则将内存上物理存储的数据块也删除;如果命中数据块的物理存储信息为闪存介质,则将该数据块的对应信息放入淘汰数据队列,并将其物理地址指向磁盘上对应的位置;
如果用户请求命中待删除数据队列,并将其物理地址指向磁盘上对应的位置;
如果用户请求没有命中任何一个队列,则缓存部分不作任何处理。
待删除数据块的确认:
周期性检查所述活跃数据队列中的所有数据块的对应信息,将其中所有空闲时间大于一定阈值的数据块的对应信息从活跃数据队列中删除,并写入淘汰数据队列,作为待删除数据块。为了减少闪存介质缓存的写入量,所述空闲时间对应的阈值一般远大于缓存空间(内存和闪存介质)可以容纳的数据块的总数,这样闪存介质中缓存的数据可以较长时间的保存在闪存介质中,显著减少数据更新的频率,即减少了写入量。
在本实施方式中,优选地,所述空闲时间的设定为存储中数据块总数*min(20%,sqrt(缓存可容纳数据块总数/存储中数据块总数))。
优选地,如图4所示,在本实施方式中,所述根据预设的数据回收条件选择待删除数据块从所述闪存介质上删除的步骤包括:
I)如果当淘汰数据队列的长度超过一定阈值,就会触发垃圾回收,执行如下步骤:
选择含有最多待淘汰数据块的大数据块擦除,变为空白大数据块(如图4中选择含有4个待淘汰数据块的大数据块擦除);
被删除大数据块中的所有数据块,如果原来存在于淘汰数据队列,则不做其它处理;如果原来存在于活跃数据队列,则将其物理存储地址信息改为磁盘,并将该数据块追加到热门数据队列尾部;如果原来存在于热门数据队列,则将其物理存储地址信息改为磁盘。
II)当某一个大数据块中的待淘汰数据块超过一定比例,也会触发垃圾回收,执行如下步骤:
将满足上述条件的大数据块全部擦除,变为空白数据块;
被删除大数据块中的所有数据块,如果原来存在于淘汰数据队列,则不做其它处理;如果原来存在于活跃数据队列,则将其物理存储地址信息改为磁盘,并将该数据块追加到热门数据队列尾部;如果原来存在于热门数据队列,则将其物理存储地址信息改为磁盘。
优选地,在本实施方式中,根据预设的数据准入条件选择待写入数据块写入所述闪存介质的步骤包括:
在上述对闪存介质上满足回收条件的大数据块进行了删除之后,会产生一些空白数据块(即空位),此时触发数据准入的启动。此时会从热门数据队列中选择访问次数大于一定阈值的未缓存数据块进入闪存介质中物理存储以填补空位,并将其在热门数据队列中的物理存储位置信息改为闪存介质。
上述缓存方法将缓存的物理存储独立于逻辑缓存数据管理之外,选取高价值的缓存数据,同时提高了缓存数据的退出门槛,因此可以使高质量的缓存数据长时间地存储于非易失性存储介质的缓存之中,减少物理存储的缓存数据的更新频率,即减少了缓存空间的非易失性存储介质的擦除和写入次数,延长了所述非易失性存储介质的使用寿命。
如图5所示,本发明实施例的一种可能的实施方式公开了一种缓存装置500,包括:
逻辑缓存数据管理模块510,用于根据数据块的访问情况,确定需要从缓存空间中的非易失性存储介质上删除的待删除数据块;
缓存空间回收模块520,用于根据预设的数据回收条件选择待删除数据块从所述非易失性存储介质上删除。
这里所述的非易失性存储介质例如可以为闪存,也可为其它读写不平衡、写入耐久性较差的非易失性存储介质。
本发明实施例给出的缓存方法将缓存的物理存储独立于逻辑缓存数据管理之外,即通过逻辑缓存数据管理模块510得到待删除数据块之后,并不是马上将其从所述非易失性存储介质上删除,而是在满足预设的数据回收条件之后,才将其物理的从所述非易失性存储介质上删除,提高了缓存数据的退出门槛,因此可以使高质量的缓存数据长时间地存储于非易失性存储介质的缓存之中,同时减少了缓存空间的非易失性存储介质的写入次数,延长了所述非易失性存储介质的寿命。
如图6所示,优选地,在本发明实施例的一种可能的实施方式中,所述缓存装置600包括:
逻辑缓存数据管理模块610,用于根据数据块的访问情况,确定需要从缓存空间中的非易失性存储介质640上删除的待删除数据块、以及需要写入非易失性存储介质640的待写入数据块;
缓存空间回收模块620,用于根据预设的数据回收条件选择待删除数据块从所述非易失性存储介质640上删除;
数据准入管理模块630,根据预设的数据准入条件选择待写入数据块写入所述非易失性存储介质640。
在本实施方式中,除了将需要从所述非易失性存储介质640上退出的数据先进行逻辑管理,再在满足设定的回收条件时才物理地从所述非易失性存储介质640上删除外,还对需要写入的数据进行逻辑管理,并在满足准入条件时才写入所述非易失性存储介质640。通过较低开销选取高价值的缓存数据,进一步减少所述非易失性存储介质640的写入量,延长其使用寿命。
在本发明实施例的一种可能的实施方式中,以所述非易失性存储介质为闪存介质为例,缓存空间中包括闪存介质来说明本实施方式。在本发明实施例的其它可能的实施方式中,所述非易失性存储介质还可以为其它耐久性较差的存储介质,或者所述缓存空间中还可以包括所述非易失性存储介质和内存介质,或者还可能除了所述非易失性存储介质和内存介质之外,还包括其它可能的存储介质。
在本实施方式中,所述数据块的访问情况包括数据块是被读请求访问还是写请求访问、以及访问的具体信息的情况。因此所述逻辑缓存数据管理模块包括:
第一访问管理单元,用于在对数据块的访问为读请求时,根据数据块的访问信息,将所述非易失性存储介质上最不热门的数据块作为待删除数据块。
其中,根据数据块的访问情况,所述待删除数据块被不断更新。
在本发明实施例的实施方式中,所述数据块的访问信息包括:数据块的最近访问时间信息、或数据块的访问总次数信息、或数据块的访问频率信息、或者其它表示数据块访问情况的信息;或者数据块的访问信息包括上面各信息中两个或者多个的组合。
本实施方式中数据块的“热门”的定义与前面方法实施例中的相同,此处不再赘述。
优选地,在本实施方式中,当数据块的访问情况中至少一个相应信息在设定的阈值之外时,判断所述数据块为最不热门的数据块。例如,与所述数据块的最近访问时间信息对应的设定有一阈值,当数据块的最近访问时间在该阈值以外时,则该数据块即为最不热门的数据块,需要从所述闪存上删除。当然,这里所述至少一个相应信息在设定的阈值之外的一种特殊的形式可能为至少一个相应信息在设定的阈值之内。
优选地,在本实施方式中,与所述访问情况的相应信息对应的阈值可以根据所述闪存数据更新频率的需要设置。例如,以数据块的最近访问时间对应的阈值为例,当该阈值设置成数据块的最近访问时间距离当前时间的差值越大,则数据块成为不热门数据块的几率就越小,在所述闪存上停留的时间就越长,数据的更新频率就越低。因此,根据所述闪存上数据更新频率的需要来设置所述阈值。
优选地,在本发明实施例的一种可能的实施方式中,所述第一访问管理单元根据设定的间隔时间,周期性地进行所述非易失性存储介质上最不热门数据块的判断。
这里,设定的间隔时间越长,闪存介质数据的更新频率就越低,写入量越少,因此优选地,在本发明实施例的一种可能的实施方式中,所述装置还包括周期设置单元,用于根据所述非易失性存储介质数据更新频率的需要设置所述间隔时间。
优选地,在本发明实施例的一种可能的实施方式中,所述逻辑缓存数据管理模块包括:
第二访问管理单元,用于在对非易失性存储介质上的数据块的访问为写请求时,将所述被写请求访问的数据块作为所述待删除数据块,并将所述被写请求访问的数据块的存储地址指向非缓存存储空间。被写请求访问的数据块是需要被更新的数据块,因此没有必要继续保留在缓存中,但是如果直接对闪存介质上的数据块进行更新则会带来额外的写操作,本实施方式中,首先将其作为待删除数据块,并将其地址指向磁盘,则读请求再次访问该数据时,则会直接访问到磁盘上写请求更新后的数据块,这样,可以进一步减少闪存介质的写放大。
优选地,在本发明实施例的一种可能的实施方式中,所述缓存空间回收模块包括:
第一数据回收条件启动单元,用于在所述待删除数据块的数量超过设定的第一阈值时启动选择待删除数据块从所述非易失性存储介质上删除的步骤。
在本实施方式中,所述缓存空间回收模块包括:
回收大数据块选择单元,用于选择含有所述待删除数据块最多的大数据块;其中,所述非易失性存储介质按照擦除单位大小的整数倍分成多个大数据块;
删除单元,用于将所述大数据块上的数据块全部删除;
有效数据处理单元,用于将所述大数据块上除了待删除数据块的其它数据块作为需要写入非易失性存储介质的待写入数据块。
根据闪存介质的特性,对闪存介质上存储的数据块进行擦除时,必须是以最小擦除单位的整数倍进行擦除,因此在擦除单位上还有其它非待删除数据块时,也不得不将这些数据块删除,将其作为待写入数据块,在数据准入条件达到时,再将其写回闪存介质;对于待删除数据块,则直接将其从闪存介质上删除就行,不需要再进行其它操作。
在本实施方式中,优选地,所述大数据块的大小为所述闪存介质擦除单位的大小,例如每个大数据块就是一个擦除单位。在本实施方式的其它实施例中,所述大数据块的大小还可以为所述擦除单位的多倍。
优选地,在本实施方式中,所述缓存空间回收模块还包括:
第二数据回收条件启动单元,用于在某个大数据块上的待删除数据块的大小与大数据块大小的比值超过设定的第二阈值时启动选择待删除数据块从所述非易失性存储介质上删除的步骤。
在所述第二数据回收条件启动单元启动时,所述缓存空间回收模块不需要再选择大数据块,而是直接通过所述删除单元将所述大数据块上的数据块全部删除;通过有效数据处理单元将所述大数据块上除了待删除数据块的其它数据块作为需要写入非易失性存储介质的待写入数据块。
在本实施方式中,所述数据回收包括上面所述的两种启动单元,其中任一个启动单元启动数据回收步骤时,都进行闪存介质上大数据块的擦除操作。在本发明实施例的其它可能的实施方式中,所述缓存空间回收模块也可以仅包括上面所述数据回收条件启动单元中的一种。
同样的,本领域技术人员可以知道,当所述第一阈值和第二阈值设置的越大时,对闪存介质的物理擦除操作越少,因此可以根据闪存数据更新频率的需要设置所述第一和第二阈值。
优选地,在本实施例中,所述逻辑缓存数据管理模块还包括:
第一访问管理单元,用于在对数据块的访问为读请求时,根据数据块的访问信息,确定设定值个最热门的数据块;这里所述的数据块的访问信息包括上面所述的访问信息中的一种或多种;
待写入数据块确定单元,用于将所述最热门的数据块中未缓存的数据块作为需要写入非易失性存储介质的待写入数据块。
这些待写入数据块确定后,作为候选数据块,在闪存介质的数据准入条件满足时,就可以被选择写入闪存介质中。
优选地,在本发明的一种可能的实施例中,所述设定值个最热门数据块总的大小略大于所述缓存空间的大小。这样可以使得数据准入条件满足时,可以选择出足够的待写入数据块写入闪存介质中。
为了减少系统计算和存储元数据的开销,优选地,所述第一访问管理单元包括:设定值动态调整子单元,用于根据所述闪存介质中空位的多少动态调整所述设定值,即数据准入计算时,如果所有待写入数据块的大小显著多于闪存介质上的空位,则可以适当减小所述设定值的大小;如果所有待写入数据块的大小少于闪存介质上的空位,则可以适当增大所述设定值的大小。
在本发明实施例的一种可能的实施方式中,所述数据准入管理模块包括:
数据准入条件启动单元,用于在所述非易失性存储介质上具有空位时启动选择待写入数据块写入所述非易失性存储介质的步骤。
即在本发明实施例中,并不是有需要闪存的数据块就马上写入闪存介质上,而是等待闪存介质上有空位的时候,才写入需要闪存的数据块,大大降低了闪存的写入量。这里闪存介质上的空位有可能是闪存介质没有存满时存在的,也有可能是由于上面所述的数据回收过程对闪存介质进行擦除操作后形成的。
在本实施方式中,所述数据准入管理模块包括:
第一待写入数据块选择单元,用于根据数据块的热门程度选择待写入数据块写入所述非易失性存储介质。
在本发明实施例的其它可能的实施方式中,优选地,所述数据准入管理模块包括:
第二待写入数据块选择单元,用于选择大小接近并小于大数据块容量整数倍的待写入数据块写入所述非易失性存储介质。这样的优点是,使得大数据块上尽量被同一个数据块覆盖,使得在对数据块进行删除时,可以整体对大数据块进行直接删除,减少大数据块上不需要被删除数据的写入量。
与上面图3所示的实施方式类似的,下面以缓存空间包括闪存介质和内存介质为例来说明本发明实施例的一种可能的实施方式。
优选地,在本实施例中,所述装置还包括:
内存缓存管理模块,用于:
将当前读请求访问的未缓存数据块缓存至所述内存介质;
当所述内存介质已满时,将所述内存介质上最不热门的数据块从所述内存介质上删除。
优选地,在本实施方式中,所述装置包括:
最热门数据队列,用于存放上面实施方式所述的设定值个最热门数据块的对应信息;
淘汰数据队列,用于存放所述待删除数据块的对应信息;
活跃数据队列,用于存放闪存介质上存储的除了在最热门数据队列和淘汰数据队列中的数据块的其它数据块的对应信息。
在本实施方式中,上述三个队列存储在内存介质中,来对进出闪存介质的数据进行逻辑管理。
优选地,在本实施方式中,所述第一访问管理单元包括:
第一最热门数据队列管理子单元,用于根据数据块的热门程度对数据块在所述最热门数据队列中对应的位置进行排序;
第二最热门数据队列管理子单元,用于有未在所述最热门数据队列中的数据块被读请求访问时,将该数据块的对应信息加入所述最热门数据队列;
第三最热门数据队列管理子单元,用于若所述最热门数据队列已满,在加入新数据块的对应信息时,删除所述最热门数据队列中排序最后的数据块对应信息。
本实施方式缓存装置各模块、单元的按照图3所示的方法实施例记载的原理实施其功能,此处不再赘述。
图7为本发明实施例提供的又一种缓存装置700的结构示意图,本发明具体实施例并不对缓存装置700的具体实现做限定。如图7所示,该缓存装置700可以包括:
处理器(processor)710、通信接口(Communications Interface)720、存储器(memory)730、以及通信总线740。其中:
处理器710、通信接口720、以及存储器730通过通信总线740完成相互间的通信。
通信接口720,用于与比如客户端等的网元通信。
处理器710,用于执行程序732,具体可以执行上述图1至图4所示的方法实施例中的相关步骤。
具体地,程序732可以包括程序代码,所述程序代码包括计算机操作指令。
处理器710可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器730,用于存放程序732。存储器730可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。程序732具体可以包括:
逻辑缓存数据管理模块,用于根据数据块的访问情况,确定需要从缓存空间中的非易失性存储介质上删除的待删除数据块;
缓存空间回收模块,用于根据预设的数据回收条件选择待删除数据块从所述非易失性存储介质上删除。
程序732中各单元的具体实现可以参见图6所示实施例中的相应单元,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (58)
1.一种缓存方法,其特征在于,包括:
根据数据块的访问情况,确定需要从缓存空间中的非易失性存储介质上删除的待删除数据块;
在所述待删除数据块的数量超过设定的第一阈值时,或者在某个大数据块上的待删除数据块的大小与大数据块大小的比值超过设定的第二阈值时,选择部分待删除数据块从所述非易失性存储介质上删除;
其中,所述非易失性存储介质按照擦除单位大小的整数倍分成多个大数据块。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
根据数据块的访问情况,确定需要写入非易失性存储介质的待写入数据块。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:根据预设的数据准入条件选择待写入数据块写入所述非易失性存储介质。
4.如权利要求1所述的方法,其特征在于,所述根据数据块的访问情况,确定需要从非易失性存储介质删除的待删除数据块包括:
根据数据块的访问信息,将所述非易失性存储介质上最不热门的数据块作为待删除数据块。
5.如权利要求4所述的方法,其特征在于,所述数据块的访问信息包括:数据块的最近访问时间信息。
6.如权利要求4或5所述的方法,其特征在于,所述数据块的访问信息包括:数据块的访问总次数信息。
7.如权利要求4或5所述的方法,其特征在于,所述数据块的访问信息包括:数据块的访问频率信息。
8.如权利要求5所述的方法,其特征在于,当数据块的访问信息中至少一个相应信息在设定的阈值之外时,判断所述数据块为最不热门的数据块。
9.如权利要求8所述的方法,其特征在于,根据所述非易失性存储介质数据更新频率的需要设置所述阈值。
10.如权利要求4所述的方法,其特征在于,根据设定的间隔时间,周期性地进行所述非易失性存储介质上最不热门数据块的判断。
11.如权利要求10所述的方法,其特征在于,根据所述非易失性存储介质数据更新频率的需要设置所述间隔时间。
12.如权利要求4、5和8至11中的任一项所述的方法,其特征在于,所述数据块的访问信息所对应的对数据块的访问为对数据块的读请求。
13.如权利要求1所述的方法,其特征在于,所述根据数据块的访问情况,确定需要从非易失性存储介质删除的待删除数据块包括:
在对非易失性存储介质上的数据块的访问为写请求时,将被所述写请求访问的数据块作为所述待删除数据块,并将被所述写请求访问的数据块的存储地址指向非缓存存储空间。
14.如权利要求1所述的方法,其特征在于,所述方法包括:设置淘汰数据队列,用于存放所述待删除数据块的对应信息。
15.如权利要求1所述的方法,其特征在于,在所述待删除数据块的数量超过设定的第一阈值时,所述选择部分待删除数据块从所述非易失性存储介质上删除的步骤包括:
选择含有所述待删除数据块最多的大数据块;
将所述大数据块上的数据块全部删除;
将所述大数据块上除了待删除数据块的其它数据块作为需要写入非易失性存储介质的待写入数据块。
16.如权利要求1或15所述的方法,其特征在于,所述大数据块的大小为所述非易失性存储介质擦除单位的大小。
17.如权利要求1所述的方法,其特征在于,在某个大数据块上的待删除数据块的大小与大数据块大小的比值超过设定的第二阈值时,所述选择部分待删除数据块从所述非易失性存储介质上删除的步骤包括:
将所述大数据块上的数据块全部删除;
将所述大数据块上除了待删除数据块的其它数据块作为需要写入非易失性存储介质的待写入数据块。
18.权利要求2所述的方法,其特征在于,所述根据数据块的访问情况,确定需要写入非易失性存储介质的待写入数据块的步骤包括:
根据数据块的访问信息,确定设定值个最热门的数据块;
将所述最热门的数据块中未缓存的数据块作为需要写入非易失性存储介质的待写入数据块。
19.如权利要求18所述的方法,其特征在于,所述数据块的访问信息所对应的对数据块的访问为对数据块的读请求。
20.如权利要求18或19所述的方法,其特征在于,所述设定值个最热门数据块总的大小大于所述缓存空间的大小。
21.如权利要求20所述的方法,其特征在于,根据所述非易失性存储介质中空位的多少动态调整所述设定值。
22.如权利要求20所述的方法,其特征在于,所述缓存空间还包括内存介质。
23.如权利要求22所述的方法,其特征在于,所述方法还包括:
将当前读请求访问的未缓存数据块缓存至所述内存介质;
当所述内存介质已满时,将所述内存介质上最不热门的数据块从所述内存介质上删除。
24.如权利要求18所述的方法,其特征在于,所述方法还包括:
设置最热门数据队列,用于存放所述设定值个最热门数据块的对应信息。
25.如权利要求24所述的方法,其特征在于,根据数据块的热门程度对数据块在所述最热门数据队列中对应的位置进行排序。
26.如权利要求25所述的方法,其特征在于,有未在所述最热门数据队列中的数据块被读请求访问时,将该数据块的对应信息加入所述最热门数据队列。
27.如权利要求25所述的方法,其特征在于,若所述最热门数据队列已满,在加入新数据块的对应信息时,删除所述最热门数据队列中排序最后的数据块对应信息。
28.如权利要求3所述的方法,其特征在于,所述数据准入条件包括:所述非易失性存储介质上具有空位。
29.如权利要求28所述的方法,其特征在于,根据数据块的热门程度选择待写入数据块写入所述非易失性存储介质。
30.如权利要求28或29所述的方法,其特征在于,选择大小接近并小于大数据块容量整数倍的待写入数据块写入所述非易失性存储介质。
31.如权利要求1所述的方法,其特征在于,所述非易失性存储介质为闪存介质。
32.一种缓存装置,其特征在于,包括:
逻辑缓存数据管理模块,用于根据数据块的访问情况,确定需要从缓存空间中的非易失性存储介质上删除的待删除数据块;
缓存空间回收模块,用于根据预设的数据回收条件选择待删除数据块从所述非易失性存储介质上删除;
其中,所述缓存空间回收模块包括:
第一数据回收条件启动单元,用于在所述待删除数据块的数量超过设定的第一阈值时启动选择部分待删除数据块从所述非易失性存储介质上删除的步骤;和/或
第二数据回收条件启动单元,用于在某个大数据块上的待删除数据块的大小与大数据块大小的比值超过设定的第二阈值时启动选择待删除数据块从所述非易失性存储介质上删除的步骤;其中,所述非易失性存储介质按照擦除单位大小的整数倍分成多个大数据块。
33.如权利要求32所述的装置,其特征在于,所述逻辑缓存数据管理模块,还用于根据数据块的访问情况,确定需要写入非易失性存储介质的待写入数据块。
34.如权利要求33所述的装置,其特征在于,所述装置还包括:
数据准入管理模块,根据预设的数据准入条件选择待写入数据块写入所述非易失性存储介质。
35.如权利要求32所述的装置,其特征在于,所述逻辑缓存数据管理模块包括:
第一访问管理单元,用于根据数据块的访问信息,将所述非易失性存储介质上最不热门的数据块作为待删除数据块。
36.如权利要求35所述的装置,其特征在于,所述第一访问管理单元在当数据块的访问信息中的相应信息在设定的阈值之外时,判断所述数据块为最不热门的数据块。
37.如权利要求36所述的装置,其特征在于,所述第一访问管理单元根据所述非易失性存储介质数据更新频率的需要设置所述阈值。
38.如权利要求35所述的装置,其特征在于,所述第一访问管理单元根据设定的间隔时间,周期性地进行所述非易失性存储介质上最不热门数据块的判断。
39.如权利要求38所述的装置,其特征在于,所述装置还包括周期设置单元,用于根据所述非易失性存储介质数据更新频率的需要设置所述间隔时间。
40.如权利要求35至38中的任一项所述的装置,其特征在于,所述第一访问管理单元用于在对非易失性存储介质上的数据块的访问为读请求时,根据数据块的访问信息,将所述非易失性存储介质上最不热门的数据块作为待删除数据块。
41.如权利要求32所述的装置,其特征在于,所述逻辑缓存数据管理模块包括:
第二访问管理单元,用于在对非易失性存储介质上的数据块的访问为写请求时,将被所述写请求访问的数据块作为所述待删除数据块,并将被所述写请求访问的数据块的存储地址指向非缓存存储空间。
42.如权利要求32所述的装置,其特征在于,所述装置包括:淘汰数据队列,用于存放所述待删除数据块的对应信息。
43.如权利要求32所述的装置,其特征在于,在所述缓存空间回收模块包括第一数据回收条件启动单元时,所述缓存空间回收模块还包括:
回收大数据块选择单元,用于选择含有所述待删除数据块最多的大数据块;
第一删除单元,用于将所述大数据块上的数据块全部删除;
第一有效数据处理单元,用于将所述大数据块上除了待删除数据块的其它数据块作为需要写入非易失性存储介质的待写入数据块。
44.如权利要求32或43所述的装置,其特征在于,所述大数据块的大小为所述非易失性存储介质擦除单位的大小。
45.如权利要求32所述的装置,其特征在于,在所述缓存空间回收模块包括所述第二数据回收条件启动单元时,所述缓存空间回收模块还包括:
第二删除单元,用于将所述大数据块上的数据块全部删除;
第二有效数据处理单元,用于将所述大数据块上除了待删除数据块的其它数据块作为需要写入非易失性存储介质的待写入数据块。
46.权利要求33所述的装置,其特征在于,所述逻辑缓存数据管理模块包括:
第一访问管理单元,用于根据数据块的访问信息,确定设定值个最热门的数据块;
待写入数据块确定单元,用于将所述最热门的数据块中未缓存的数据块作为需要写入非易失性存储介质的待写入数据块。
47.如权利要求46所述的装置,其特征在于,所述第一访问管理单元用于在对非易失性存储介质上的数据块的访问为读请求时,根据数据块的访问信息,确定设定值个最热门的数据块。
48.如权利要求46或47所述的装置,其特征在于,所述设定值个最热门数据块总的大小大于所述缓存空间的大小。
49.如权利要求48所述的装置,其特征在于,所述第一访问管理单元包括:
设定值动态调整子单元,用于根据所述非易失性存储介质中空位的多少动态调整所述设定值。
50.如权利要求48所述的装置,其特征在于,所述缓存空间还包括内存介质。
51.如权利要求50所述的装置,其特征在于,所述装置还包括:内存缓存管理模块,用于:
将当前读请求访问的未缓存数据块缓存至所述内存介质;
当所述内存介质已满时,将所述内存介质上最不热门的数据块从所述内存介质上删除。
52.如权利要求46所述的装置,其特征在于,所述第一访问管理单元还包括:
最热门数据队列,用于存放所述设定值个最热门数据块的对应信息。
53.如权利要求52所述的装置,其特征在于,所述第一访问管理单元包括:
第一最热门数据队列管理子单元,用于根据数据块的热门程度对数据块在所述最热门数据队列中对应的位置进行排序。
54.如权利要求53所述的装置,其特征在于,所述第一访问管理单元包括:
第二最热门数据队列管理子单元,用于有未在所述最热门数据队列中的数据块被读请求访问时,将该数据块的对应信息加入所述最热门数据队列。
55.如权利要求53所述的装置,其特征在于,所述第一访问管理单元包括:
第三最热门数据队列管理子单元,用于若所述最热门数据队列已满,在加入新数据块的对应信息时,删除所述最热门数据队列中排序最后的数据块对应信息。
56.如权利要求34所述的装置,其特征在于,所述数据准入管理模块包括:
数据准入条件启动单元,用于在所述非易失性存储介质上具有空位时启动选择待写入数据块写入所述非易失性存储介质的步骤。
57.如权利要求56所述的装置,其特征在于,所述数据准入管理模块包括:
第一待写入数据块选择单元,用于根据数据块的热门程度选择待写入数据块写入所述非易失性存储介质。
58.如权利要求56或57所述的装置,其特征在于,所述数据准入管理模块包括:
第二待写入数据块选择单元,用于选择大小接近并小于大数据块容量整数倍的待写入数据块写入所述非易失性存储介质。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310329769.3A CN103440207B (zh) | 2013-07-31 | 2013-07-31 | 缓存方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310329769.3A CN103440207B (zh) | 2013-07-31 | 2013-07-31 | 缓存方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103440207A CN103440207A (zh) | 2013-12-11 |
CN103440207B true CN103440207B (zh) | 2017-02-22 |
Family
ID=49693898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310329769.3A Active CN103440207B (zh) | 2013-07-31 | 2013-07-31 | 缓存方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103440207B (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105404595B (zh) * | 2014-09-10 | 2018-08-31 | 阿里巴巴集团控股有限公司 | 缓存管理方法及装置 |
CN105653556B (zh) * | 2014-11-21 | 2021-03-12 | 中兴通讯股份有限公司 | 一种数据老化方法及装置 |
EP3200083B1 (en) * | 2014-12-23 | 2019-03-13 | Huawei Technologies Co. Ltd. | Resource scheduling method and related apparatus |
CN104715020B (zh) * | 2015-02-13 | 2017-12-29 | 腾讯科技(深圳)有限公司 | 缓存数据的删除方法及服务器 |
CN105653397B (zh) * | 2015-09-30 | 2019-01-25 | 宇龙计算机通信科技(深圳)有限公司 | 一种回收处理方法、装置及电子设备 |
CN105302493B (zh) * | 2015-11-19 | 2018-04-17 | 浪潮(北京)电子信息产业有限公司 | 一种混合存储阵列中ssd缓存的换入换出控制方法及系统 |
CN105677240B (zh) | 2015-12-30 | 2019-04-23 | 上海联影医疗科技有限公司 | 数据删除方法及系统 |
CN106021129B (zh) * | 2016-04-29 | 2018-11-16 | 努比亚技术有限公司 | 一种终端及终端清理缓存的方法 |
CN106970998B (zh) * | 2017-04-06 | 2021-12-21 | 北京奇虎科技有限公司 | 新闻数据的更新方法及装置 |
US20190012259A1 (en) * | 2017-07-06 | 2019-01-10 | Futurewei Technologies, Inc. | Lba eviction in pcm media |
CN107688542B (zh) * | 2017-08-17 | 2020-10-09 | 歌尔股份有限公司 | 存储数据处理方法和装置 |
CN107908358A (zh) * | 2017-10-25 | 2018-04-13 | 记忆科技(深圳)有限公司 | 一种降低NVMe固态硬盘写放大的方法 |
CN108776614B (zh) * | 2018-05-03 | 2021-08-13 | 华为技术有限公司 | 存储块的回收方法和装置 |
CN109144431B (zh) | 2018-09-30 | 2021-11-02 | 华中科技大学 | 数据块的缓存方法、装置、设备及存储介质 |
CN109491619A (zh) * | 2018-11-21 | 2019-03-19 | 浙江中智达科技有限公司 | 缓存数据处理方法、装置和系统 |
CN109766462B (zh) * | 2018-12-27 | 2020-12-15 | 山东信通电子股份有限公司 | 输电线路监控系统中的图像文件读取方法、装置及系统 |
CN110399316B (zh) * | 2019-06-28 | 2021-10-01 | 苏州浪潮智能科技有限公司 | 一种用于业务系统性能优化的方法和装置 |
CN110688226B (zh) * | 2019-09-27 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种缓存回收方法、装置、设备及可读存储介质 |
CN111352957A (zh) * | 2020-02-25 | 2020-06-30 | 京东数字科技控股有限公司 | 远程字典服务优化方法及相关设备 |
CN111309645B (zh) * | 2020-03-12 | 2023-06-27 | 上海交通大学 | 基于非易失性内存的新型混合内存垃圾回收方法及系统 |
CN114428589B (zh) * | 2022-01-04 | 2024-05-28 | 北京达佳互联信息技术有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN114879986B (zh) * | 2022-07-13 | 2022-09-16 | 紫光同芯微电子有限公司 | 用于程序包下载解析的方法及装置、终端设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110058A (zh) * | 2006-07-20 | 2008-01-23 | 何纯淳 | 闪速存储器的回收方法 |
CN101493821A (zh) * | 2008-01-25 | 2009-07-29 | 中兴通讯股份有限公司 | 数据缓存方法和装置 |
CN102696010A (zh) * | 2009-09-08 | 2012-09-26 | 弗森-艾奥公司 | 用于将数据高速缓存在固态存储设备上的装置、系统和方法 |
CN102902628A (zh) * | 2012-09-18 | 2013-01-30 | 记忆科技(深圳)有限公司 | 一种基于闪存实现的冷热数据自动分离方法、系统及闪存 |
CN103067467A (zh) * | 2012-12-21 | 2013-04-24 | 深信服网络科技(深圳)有限公司 | 缓存方法及装置 |
CN103106153A (zh) * | 2013-02-20 | 2013-05-15 | 哈尔滨工业大学 | 基于访问密度的web缓存替换方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8086816B2 (en) * | 2008-10-20 | 2011-12-27 | Dataram, Inc. | Method for controlling performance aspects of a data storage and access routine |
-
2013
- 2013-07-31 CN CN201310329769.3A patent/CN103440207B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110058A (zh) * | 2006-07-20 | 2008-01-23 | 何纯淳 | 闪速存储器的回收方法 |
CN101493821A (zh) * | 2008-01-25 | 2009-07-29 | 中兴通讯股份有限公司 | 数据缓存方法和装置 |
CN102696010A (zh) * | 2009-09-08 | 2012-09-26 | 弗森-艾奥公司 | 用于将数据高速缓存在固态存储设备上的装置、系统和方法 |
CN102902628A (zh) * | 2012-09-18 | 2013-01-30 | 记忆科技(深圳)有限公司 | 一种基于闪存实现的冷热数据自动分离方法、系统及闪存 |
CN103067467A (zh) * | 2012-12-21 | 2013-04-24 | 深信服网络科技(深圳)有限公司 | 缓存方法及装置 |
CN103106153A (zh) * | 2013-02-20 | 2013-05-15 | 哈尔滨工业大学 | 基于访问密度的web缓存替换方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103440207A (zh) | 2013-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103440207B (zh) | 缓存方法及装置 | |
CN102760101B (zh) | 一种基于ssd 的缓存管理方法及系统 | |
CN104572491B (zh) | 一种基于固态硬盘的读缓存管理方法及装置 | |
CN103425600B (zh) | 一种固态盘闪存转换层中的地址映射方法 | |
CN102368258B (zh) | 一种网页页面缓存管理方法及其系统 | |
CN104115133B (zh) | 用于复合非易失性存储设备的数据迁移的方法、系统和设备 | |
US20160217071A1 (en) | Cache Allocation in a Computerized System | |
CN104503703B (zh) | 缓存的处理方法和装置 | |
CN103019958A (zh) | 使用数据属性来管理固态存储器里的数据的方法 | |
CN103186350A (zh) | 混合存储系统及热点数据块的迁移方法 | |
CN109086141B (zh) | 内存管理方法和装置以及计算机可读存储介质 | |
CN102646069A (zh) | 一种延长固态盘使用寿命的方法 | |
CN105980992B (zh) | 一种存储系统、识别数据块稳定性的方法以及装置 | |
CN107463509B (zh) | 缓存管理方法、缓存控制器以及计算机系统 | |
JP6711121B2 (ja) | 情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラム | |
CN104090852A (zh) | 管理混合缓存的方法及设备 | |
CN108920616A (zh) | 一种元数据访问性能优化方法、系统、装置及存储介质 | |
CN111580754B (zh) | 一种写友好的闪存固态盘缓存管理方法 | |
KR20150004949A (ko) | 플래시 메모리 기반 세가지 상태를 가지는 버퍼 관리 장치 및 방법 | |
CN108984130A (zh) | 一种分布式存储的缓存读取方法及其装置 | |
US10853250B2 (en) | Storage management method, electronic device and computer program product | |
CN103150245A (zh) | 确定数据实体的访问特性的方法和存储控制器 | |
CN102314397A (zh) | 缓存数据块的处理方法 | |
CN108139904A (zh) | 写入命令过滤 | |
CN113672166A (zh) | 数据处理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |