基于数据热度及数据密度的缓存回写方法及系统的制作方法

文档序号:9396640阅读:244来源:国知局
基于数据热度及数据密度的缓存回写方法及系统的制作方法
【技术领域】
[0001]本发明涉及磁盘存储技术,尤其涉及一种基于数据热度及数据密度的缓存回写方法及系统。
【背景技术】
[0002]通过最近最少使用LRU (Least Recently Used)算法选取需要回写的缓存块,因为在缓存足够大的情况下,最近最少使用的缓存数据块就是热度最低的数据。这种方式在执行顺序写的时候具有很好的效果,因为最早写入的数据不会再次被写入,热度最低,并且其数据的连续性即数据密度一定是最高的。
[0003]在随机写并且有较多部分命中缓存情况下(例如随机区间为10GB,而缓存大小为5GB),LRU算法存在如下问题:⑴由于数据十分随机,所有数据的平均热度都非常低,这时选择的回写数据与随机选择回写数据没有区别,退化为随机算法;(2)数据密度没有保证,而数据密度较高的缓冲块回写的速度要显著大于数据密度低的缓冲块。

【发明内容】

[0004]基于上述问题,本发明提供一种基于数据热度及数据密度的缓存回写方法及系统,可以在随机写命中率居中的情况下具有较大的cache回写效率。
[0005]根据上述目的,本发明提供了一种基于数据热度及数据密度的缓存回写方法,其特征在于,所述方法包括:
[0006]S1、为磁盘阵列组的每个缓存创建具有n+1个元素的最近最少使用LRU链表数组;
[0007]S2、计算所述缓存的每个缓存块的数据密度;
[0008]S3、按照所述数据密度将所述缓存块链接到对应数组下标的LRU链表中;
[0009]S4、在选择要回写的缓存块时,倒序遍历LRU链表数组,选取数据密度最高的缓存块进行回写。
[0010]其中,所述数据密度的计算公式如下:
[0011]数据密度=缓存块有效数据量*n/缓存块最大承载数据量,
[0012]其中,数据密度的取值范围为[O?η]。
[0013]其中,所述步骤S4还包括:
[0014]当顺序遍历所述LRU链表数组时,则使用LRU算法选择回写的缓冲块。
[0015]本发明的另一个方面,提供一种基于数据热度及数据密度的缓存回写系统,其特征在于,所述系统包括:
[0016]LRU链表数组初始化单元,用于为磁盘阵列组的每个缓存创建具有n+1个元素的LRU链表数组;
[0017],用于为磁盘阵列组的每个缓存创建具有n+1个元素的LRU链表数组;
[0018]数据密度计算单元,用于计算所述缓存的每个缓存块的数据密度;
[0019]缓存块链接单元,用于按照所述数据密度将所述缓存块链接到对应数组下标的LRU链表中;
[0020]回写单元,用于在选择要回写的缓存块时,倒序遍历LRU链表数组,选取数据密度最高的缓存块进行回写。
[0021]本发明的基于数据热度及数据密度的缓存回写方法及系统,通过计算每个缓冲块的数据密度,优先对数据密度较高的缓存块进行回写,从而可以在随机写命中率居中的情况下提高缓存回写效率。
【附图说明】
[0022]通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
[0023]图1示出了本发明的基于数据热度及数据密度的缓存回写方法的流程图。
[0024]图2示出了本发明的基于数据热度及数据密度的缓存回写系统的结构框图。
【具体实施方式】
[0025]下面将结合附图对本发明的实施例进行详细描述。
[0026]图1示出了本发明的基于数据热度及数据密度的缓存回写方法的流程图。
[0027]本发明提供了一种基于数据热度及数据密度的缓存回写算法,所述方法包括:
[0028]S1、为磁盘阵列组的每个缓存创建具有n+1个元素的LRU链表数组;
[0029]S2、计算所述缓存的每个缓存块的数据密度;
[0030]数据密度的计算公式如下:
[0031]数据密度=缓存块有效数据量*n/缓存块最大承载数据量,
[0032]其中,数据密度的取值范围为[O?η]。
[0033]S3、按照所述数据密度将所述缓存块链接到对应数组下标的LRU链表中;如将数据密度顺序排列的第m个缓冲块链接到数组下标为m的LRU链表中。
[0034]S4、在选择要回写的缓存块时,倒序遍历LRU链表数组,选取数据密度最高的缓存块进行回写。
[0035]在本实施例中,由于在同一个LRU链表中的缓冲块数据密度一致,并已经按照LRU算法排序,所以当顺序遍历所述LRU链表数组时,则使用LRU算法选择回写的缓冲块。
[0036]图2示出了本发明的基于数据热度及数据密度的缓存回写系统的结构框图。
[0037]参照图2,本发明的另一个方面,提供一种基于数据热度及数据密度的缓存回写系统,该系统包括:
[0038]LRU链表数组初始化单元10,用于为磁盘阵列组的每个缓存创建具有n+1个元素的LRU链表数组;
[0039]数据密度计算单元20,用于计算所述缓存的每个缓存块的数据密度;
[0040]缓存块链接单元30,用于按照所述数据密度将所述缓存块链接到对应数组下标的LRU链表中;
[0041 ] 回写单元40,用于在选择要回写的缓存块时,倒序遍历LRU链表数组,选取数据密度最高的缓存块进行回写。
[0042]本发明的基于数据热度及数据密度的缓存回写方法及系统,通过优先对数据密度较高的缓冲块进行回写,从而在缓存块50%命中的情况下,提升随机写的10PS(Input/Output Operat1ns Per Second)约20%,与此同时,对于顺序写的性能没有影响。另外,对于同一个LRU链表中的缓存块数据密度一致的情况,则使用LRU算法,从而可以在随机写命中率居中的情况下提尚缓存回与效率。
[0043]虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
【主权项】
1.一种基于数据热度及数据密度的缓存回写方法,其特征在于,所述方法包括: 51、为磁盘阵列组的每个缓存创建具有n+1个元素的最近最少使用LRU链表数组; 52、计算所述缓存的每个缓存块的数据密度; 53、按照所述数据密度将所述缓存块链接到对应数组下标的LRU链表中; 54、在选择要回写的缓存块时,倒序遍历LRU链表数组,选取数据密度最高的缓存块进行回写。2.根据权利要求1所述的基于数据热度及数据密度的缓存回写方法,其特征在于,所述数据密度的计算公式如下: 数据密度=缓存块有效数据量*n/缓存块最大承载数据量, 其中,数据密度的取值范围为[O?η]。3.根据权利要求1所述的基于数据热度及数据密度的缓存回写方法,其特征在于,所述步骤S4还包括: 当顺序遍历所述LRU链表数组时,则使用LRU算法选择回写的缓冲块。4.一种基于数据热度及数据密度的缓存回写系统,其特征在于,所述系统包括: LRU链表数组初始化单元,用于为磁盘阵列组的每个缓存创建具有n+1个元素的LRU链表数组; 数据密度计算单元,用于计算所述缓存的每个缓存块的数据密度; 缓存块链接单元,用于按照所述数据密度将所述缓存块链接到对应数组下标的LRU链表中; 回写单元,用于在选择要回写的缓存块时,倒序遍历LRU链表数组,选取数据密度最高的缓存块进行回写。
【专利摘要】本发明涉及一种基于数据热度及数据密度的缓存回写方法及系统,所述方法包括:S1、为磁盘阵列组的每个缓存创建具有n+1个元素的最近最少使用LRU链表数组;S2、计算所述缓存的每个缓存块的数据密度;S3、按照所述数据密度将所述缓存块链接到对应数组下标的LRU链表中;S4、在选择要回写的缓存块时,倒序遍历LRU链表数组,选取数据密度最高的缓存块进行回写。通过该方法,可以在随机写命中率居中的情况下具有较大的缓存回写效率。
【IPC分类】G06F3/06
【公开号】CN105117174
【申请号】CN201510549350
【发明人】李浩然
【申请人】北京神州云科数据技术有限公司
【公开日】2015年12月2日
【申请日】2015年8月31日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1