一种基于固态硬盘的读缓存管理方法及装置的制造方法

文档序号:8258371阅读:412来源:国知局
一种基于固态硬盘的读缓存管理方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机领域,尤其涉及一种基于固态硬盘的读缓存管理方法及装置。
【背景技术】
[0002]目前为了改进磁盘系统的输入/输出性能,例如减小请求响应时间、提高吞吐率等,在大多数存储系统中,在磁盘系统的上层采用缓存技术来满足性能提升的需求。
[0003]传统的存储系统中,数据库系统一般以DRAM(Dynamic Random Access Memory,动态随机存取存储器)作为缓存介质,DRAM具有读写平衡和写入耐久性好的优点,不需要考虑DRAM写入量,可以频繁的将数据写入DRAM中。
[0004]为了降低缓存介质的成本,越来越多的存储系统中采用SSD(Solid StateDrives,固态硬盘)作为缓存介质,SSD具有容量更大、成本更低和非易失性的优点,但是SSD具有可擦写次数限制的问题。运用传统缓存替换算法(例如LRU等)管理SSD时,由于缓存介质缺失驱动数据更新,新来的读请求未命中时会导致SSD中有数据块被删除,如果不断有新来的读请求未命中,SSD中就会有数据块不断的被踢出,SSD中的数据块的停留时间会很短,然而这些被踢出的数据块可能在一定时间之后有被重新写入SSD,这样频繁的数据擦写操作会减少SSD的使用寿命,增加成本和维护难度。

【发明内容】

[0005]本发明实施例所要解决的技术问题在于,提供一种基于SSD的读缓存管理方法和装置。可减少SSD的擦写次数,延长SSD的使用寿命。
[0006]为了解决上述技术问题,本发明实施例第一方面提供了一种基于SSD的读缓存管理方法,包括:
[0007]接收读请求,并判断所述读请求是否命中所述第一队列和所述第二队列;
[0008]若二者均未命中,根据缓存替换算法选择并删除所述第一队列中的淘汰数据块;其中,所述淘汰数据块为已存储状态;
[0009]若所述淘汰数据块为已存储状态,将所述淘汰数据块插入所述第二队列中;
[0010]从下级存储介质中确定所述读请求对应的目标数据块,将所述目标数据块插入所述第一队列中;其中,所述目标数据块为未存储状态。
[0011]结合第一方面,在第一种可能的实现方式中,还包括:
[0012]若所述淘汰数据块为未存储状态,将所述淘汰数据块从第一队列中删除,并从所述SSD中删除。
[0013]结合第一方面,在第二种可能的实现方式中,还包括:
[0014]若所述读请求未命中所述第一队列但命中所述第二队列,删除所述第二队列中所述读请求对应的命中数据块;
[0015]将所述命中数据块插入所述第一队列中。
[0016]结合第一方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,还包括:
[0017]计算所述第二队列中的待处理数据块的空闲时间;其中,所述待处理数据块为所述第二队列中的数据块的任意一个;
[0018]当所述待处理数据块持续未访问的时间大于所述待处理数据块的空闲时间时,将所述待处理数据块从所述第二队列中删除;
[0019]获取所述待处理数据块的身份标识,并将所述待处理数据块的身份标识插入到第三队列中。
[0020]结合第一方面的第二种可能的实现方式,在第四种可能的实现方式中,述计算所述所述第二队列中的待处理数据块的空闲时间包括:
[0021]统计所述待处理数据块在所述第一队列中的命中次数M和所述第二队列中的命中次数N ;
[0022]根据所述命中次数M和所述命中次数N计算所述待处理数据块的空闲时间。
[0023]结合第一方面的第二种可能的实现方式,在第五种可能的实现方式中,所述将所述淘汰数据块插入所述第二队列中包括:
[0024]获取所述淘汰数据块的身份信息;
[0025]若所述淘汰数据块的身份信息不在所述第三队列中,将所述淘汰数据块插入所述第二队列中;
[0026]若所述淘汰数据块的身份信息在所述第三队列中,判断所述淘汰数据块的淘汰时长是否大于预设时间阈值,若为是,将所述淘汰数据块插入所述第二队列中。
[0027]结合第一方面至第五种可能的实现方式中的任意一种,在第六种可能的实现方式中,所述当所述待处理数据块持续未访问的时间大于所述待处理数据块的空闲时间时,将所述待处理数据块从所述第二队列中删除之后,还包括:
[0028]搜索所述第一队列中首个未存储状态的数据块;
[0029]将所述首个未存储状态的数据块写入所述SSD中,并在写入操作完成后将该数据块设置为已存储状态;或者
[0030]确定所述第一队列中前K位未存储状态的数据块;其中K为大于O的整数;
[0031]将所述K个数据块中访问量最大的数据块写入所述SSD,并在写入操作完成后将所述访问量最大的数据块设置为已存储状态。
[0032]相应地,本发明实施例第二方面还提供了一种基于SSD的读缓存管理装置,包括:
[0033]SSD中包括第一队列和第二队列,所述装置包括:
[0034]第一删除模块,用于若二者均未命中,若二者均未命中,根据缓存替换算法选择并删除所述第一队列中的淘汰数据块;
[0035]第一插入模块,用于,若所述淘汰数据块为已存储状态,将所述淘汰数据块插入所述第二队列中;
[0036]确定模块,用于从下级存储介质中确定所述读请求对应的目标数据块,将所述目标数据块插入所述第一队列中;其中,所述目标数据块为未存储状态。
[0037]结合第二方面,在第一种可能的实现方式中,还包括:
[0038]第二删除模块,用于若所述淘汰数据块为未存储状态,将所述淘汰数据块从第一队列中删除,并从所述SSD中删除。
[0039]结合第二方面的第一种可能的,在第二种可能的实现方式中,还包括:
[0040]第三删除模块,用于若所述读请求未命中所述第一队列但命中所述第二队列,删除所述第二队列中所述读请求对应的命中数据块;
[0041]第二插入模块,用于将所述命中数据块插入所述第一队列中。
[0042]结合第二方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,还包括:
[0043]计算模块,用于计算所述第二队列中的待处理数据块的空闲时间;其中,所述待处理数据块为所述第二队列中的数据块的任意一个;
[0044]第三删除模块,用于当所述待处理数据块持续未访问的时间大于所述待处理数据块的空闲时间时,将所述待处理数据块从所述第二队列中删除;
[0045]第三插入模块,用于获取所述待处理数据块的身份标识,并将所述待处理数据块的身份标识插入到第三队列中。
[0046]结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述计算丰吴块包括:
[0047]统计单元,用于统计所述待处理数据块在所述第一队列中的命中次数M和所述第二队列中的命中次数N ;
[0048]计算单元,用于根据所述命中次数M和所述命中次数N计算所述待处理数据块的空闲时间。
[0049]结合第二方面的第二种可能的实现方式,在第四种可能的实现方式中,所述第一插入模块用于获取所述淘汰数据块的身份信息;
[0050]若所述淘汰数据块的身份信息不在所述第三队列中,将所述淘汰数据块插入所述第二队列中;
[0051]若所述淘汰数据块的身份信息在所述第三队列中,判断所述淘汰数据块的淘汰时长是否大于预设时间阈值,若为是,将所述淘汰数据块插入所述第二队列中。
[0052]结合第二方面至第五种可能的实现方式中的任意一种,在第五种可能的实现方式中,还包括:
[0053]写入模块,用于搜索所述第一队列中首个未存储状态的数据块;
[0054]将所述首个未存储状态的数据块写入所述SSD中,并在写入操作完成后将该数据块设置为已存储状态;或者
[0055]确定所述第一队列中前K位的未存储状态的数据块;其中K为大于O的整数;
[0056]将所述K个数据块中访问量最大的数据块写入所述SSD,并在写入完成后将所述访问量最大的数据块设置为已存储状态。
[0057]实施本发明实施例,具有如下有益效果:
[0058]针对SSD擦写次数存在限制的缺点,与现有的缓存替换算法结合,将第一队列中淘汰出来的数据块插入到设置的第二队列中,并没有直接从SSD中直接删除,增加淘汰数据块在SSD中停留时间,从而提高SSD的读命中率,同时当SDD未命中时,将元数据写入第一队列中,又可以减少SDD写入量,延长了 SSD的使用寿命。
【附图说明】
[0059]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0060]图1是本发明实施例提供的一种基于SSD的读缓存管理方法的流程示意图;
[0061]图2是本发明实施例提供的一种基于SSD的读缓存管理方法的另一流程示意图;
[0062]图3是本发明实施例提供的一种基于SSD的读缓存管理方法的实例示意图;
[0063]图4是本发明实施例提供的一种基于SSD的读缓存管理装置的结构示意图;
[0064]图5是本发明实施例提供的一种基于SSD的读缓存管理装置的另一结构示意图。
【具体实施方式】
[0065]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1