[发明专利]写高速缓冲存储器的方法及装置有效
申请号: | 201310400488.2 | 申请日: | 2013-09-05 |
公开(公告)号: | CN103488582A | 公开(公告)日: | 2014-01-01 |
发明(设计)人: | 明亮;黄福堂;王朝海 | 申请(专利权)人: | 深圳市华为技术软件有限公司 |
主分类号: | G06F12/08 | 分类号: | G06F12/08;G06F12/02 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 唐华明 |
地址: | 广东省深圳市龙*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 高速 缓冲存储器 方法 装置 | ||
技术领域
本发明涉及数据存储技术领域,尤其涉及一种读、写高速缓冲存储器的方法及装置。
背景技术
高速缓冲存储器(cache)是磁盘内部存储和外界接口之间的缓冲器。高速缓冲存储器的一个重要作用就是做为写cache对写入数据进行缓存,即在有数据需要存储至磁盘时,不会马上将数据写入到磁盘中,而是先将数据暂时写入高速缓冲存储器里,然后返回一个“数据已写入”的信号给系统,这时系统就会认为数据已经写入,并继续执行后续的工作,当高速缓存存储器中的数据达到一定程度时,再将数据从高速缓冲存储器写入到磁盘中。高速缓存存储器的使用,一方面减少了实际的磁盘操作,有效保护磁盘免于重复的读写操作而导致的损坏,一方面也可以减少数据写入所需的时间,从而提高了存储系统的写性能。
然而,目前多使用带备用电池(Battery Backup Unit,BBU)保电的动态随机存储器(Dynamic Random Access Memory,DRAM)做为写cache,而备用电池的价格昂贵,能够支持的内存有限,因此,维护动态随机存储器需要消耗更多的电能,因而,使用动态随机存储器做为写cache使得存储系统的实现成本较高。
发明内容
本发明实施例提供了一种写高速缓冲存储器的方法,以降低存储系统的实现成本。
本发明的第一方面提供一种写高速缓冲存储器的方法,所高速缓冲存储器为闪存卡,所述方法包括:
判断所述闪存卡中是否缓存有与待存储数据块的磁盘逻辑块地址相同的旧数据块;
如果是,则将所述待存储数据块以异步方式写入所述闪存卡中;
如果否,则将所述待存储数据块以异步方式写入所述闪存卡中的空闲块中。
在第一方面的第一种可能的实现方式中,所述将所述待存储数据块写入所述闪存卡的空闲块中包括:
判断所述闪存卡中是否存在空闲块;
如果存在,则将所述待存储数据块以异步方式写入所述闪存卡中的空闲块中;
如果不存在,则将所述待存储数据块加入到等待队列,并在所述闪存卡中出现空闲块时,执行将所述待存储数据块以异步方式写入所述闪存卡中的空闲块中的步骤。
在第一方面的第二种可能的实现方式中,在将所述待存储的数据块写入所述闪存卡中的空闲块后,还包括:
保存所述待存储数据块的磁盘逻辑块地址和所述待存储数据块的闪存逻辑块地址的对应关系。
结合第一方面的第二种可能实现方式,在第一方面的第三种可能的实现方式中,所述判断所述闪存卡中是否缓存有与待存储数据块的磁盘逻辑块地址相同的旧数据块包括:
判断是否存在与所述待存储数据块的磁盘逻辑块地址相对应的闪存逻辑块地址;
如果存在,则确定所述闪存卡中缓存有与所述待存储数据块的磁盘逻辑块地址相同的旧数据块;否则,确定所述述闪存卡中未缓存有与所述待存储数据块的磁盘逻辑块地址相同的旧数据块。
结合第一方面或第一方面的任意一种实现方式,在第一方面的第四种可能的实现方式中,还包括:
将所述待存储数据块标记为脏数据块,并将所述待存储数据块加入脏数据块队列。
结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,还包括:
获取所述闪存卡的当前空闲空间比例;
当所述空闲空间的比例小于第一预设阈值时,确定待读取的脏数据块的个数;
将所述脏数据块队列中的各个脏数据块按照磁盘逻辑块地址进行堆排序,获取第一排序堆;
发起若干个第一异步请求,依据所述待读取的脏数据块的个数从所述第一排序堆堆头开始依次异步读取闪存卡中的脏数据块;
根据读取到的脏数据块的磁盘逻辑块地址将读取到的脏数据块进行堆排序,获取第二排序堆;
发起第二异步请求,将所述读取到的脏数据块从第二排序堆的堆头开始依次异步写入磁盘中,所述第二异步请求的个数为所述待读取的脏数据块的个数。
结合第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,所述堆排序为最小堆排序。
结合第一方面的第五种可能的实现方式,在第一方面的第七种可能的实现方式中,所述堆排序为最大堆排序。
结合第一方面的第五种可能的实现方式,在第一方面的第八种可能的实现方式中,所述第一异步请求的个数依据第一公式确定,所述第一公式为:
V=N+(M-N)*R
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市华为技术软件有限公司,未经深圳市华为技术软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310400488.2/2.html,转载请声明来源钻瓜专利网。