[发明专利]一种flashcache混合存储系统的缓存调度方法及系统在审
申请号: | 201610258512.7 | 申请日: | 2016-04-22 |
公开(公告)号: | CN107305475A | 公开(公告)日: | 2017-10-31 |
发明(设计)人: | 吴方鸣;陈岚;郝晓冉 | 申请(专利权)人: | 中国科学院微电子研究所 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 北京集佳知识产权代理有限公司11227 | 代理人: | 党丽,王宝筠 |
地址: | 100029 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 flashcache 混合 存储系统 缓存 调度 方法 系统 | ||
1.一种flashcache混合存储系统的缓存调度方法,其特征在于,包括:
根据硬盘读写操作请求中的磁盘块号,判断数据是否已缓存在的缓存块中;
若否,则将数据缓存至缓存块中并将对应的元数据结构链接到非热读链表,以及将元数据结构中的热度标志设置为第一热度值;
若是,则判断缓存块对应的元数据结构中的热度标志的值是否不小于第二热度值,若小于,则将热度标志的值增加预定数值,且当热度标志的值等于第二热度值时,将此缓存块对应的元数据结构从非热读链表断开并链接到热读链表,并判断热读链表的长度是否大于长度阈值,若大于,则按照LRU算法,将热读链表的一个缓存块对应的元数据结构中的热度标志的第二热度值减少预定数值,从热读链表断开,并将此缓存块对应的元数据结构链接到非热读链表;
在将数据缓存至缓存块中时,若无空闲缓存块,将非热读链表中的至少部分元数据结构对应的缓存块进行回收。
2.根据权利要求1所述的缓存调度方法,其特征在于,在将热度标志的值增加预定数值的步骤包括:若热度标志为第一热度值,则将第一热度值增加预定数值后变为中间热读值,若热度标志为中间热读值,则将中间热度值增加预定数值后变为第二热度值;则,
将热读链表的一个缓存块对应的元数据结构中的热度标志的第二热度值减少预定数值的步骤包括:
将热读链表的一个缓存块对应的元数据结构中的热度标志的第二热度值减少预定数值后变为中间热度值。
3.根据权利要求1所述的缓存调度方法,其特征在于,非热读链表和热读链表为LRU链表。
4.根据权利要求1-3中任一项所述的缓存调度方法,其特征在于,将非热读链表中的至少部分元数据结构对应的缓存块进行回收的步骤包括:
将非热读链表中元数据结构中的热度标志为第一热度值的缓存块部分或 全部回收。
5.一种flashcache混合存储系统的缓存调度系统,其特征在于,包括:
缓存块命中判断单元,用于根据硬盘读写操作请求中的磁盘块号,判断数据是否已缓存在的缓存块中;
缓存单元,用于在数据没有缓存在缓存块中时,将数据缓存至缓存块中并将对应的元数据结构连接到非热读链表,,并将缓存块对应的元数据结构中的热度标志设置为第一热度值;
缓存调度单元,用于在数据已缓存在缓存块中时,判断缓存块对应的元数据结构中的热度标志的值是否不小于第二热度值,若小于,则将热度标志的值增加预定数值,且当热度标志的值等于第二热度值时,将此缓存块对应的元数据结构从非热读链表断开并链接到热读链表,并判断热读链表的长度是否大于长度阈值,若大于,则按照LRU算法,将热读链表的一个缓存块对应的元数据结构中的热度标志的第二热度值减少预定数值,从热读链表断开,并将此缓存块对应的元数据结构链接到非热读链表;
回收单元,用于在将数据缓存至缓存块中时,若无空闲缓存块,将非热读链表中的至少部分元数据结构对应的缓存块进行回收。
6.根据权利要求5所述的缓存调度系统,其特征在于,缓存调度单元中,若热度标志为第一热度值,则将第一热度值增加预定数值后变为中间热读值,若热度标志为中间热读值,则将中间热度值增加预定数值后变为第二热度值;则,
缓存调度单元中,将热读链表的一个缓存块对应的元数据结构中的热度标志的第二热度值减少预定数值后变为中间热度值。
7.根据权利要求5所述的缓存调度系统,其特征在于,非热读链表和热读链表为LRU链表。
8.根据权利要求5-7中任一项所述的缓存调度系统,其特征在于,回收单元中,将非热读链表中元数据结构中的热度标志为第一热度值的缓存块部分或全部回收。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院微电子研究所,未经中国科学院微电子研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610258512.7/1.html,转载请声明来源钻瓜专利网。