[发明专利]向缓存写入数据的方法及装置有效
申请号: | 201510568241.0 | 申请日: | 2015-09-08 |
公开(公告)号: | CN105117351B | 公开(公告)日: | 2018-07-03 |
发明(设计)人: | 黄福堂 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F12/0802 | 分类号: | G06F12/0802 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 王仲凯 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 元数据 写入 待写入数据 缓存 写入数据 元数据块 元数据组 队列 全局 | ||
1.一种向缓存Cache中写入数据的方法,其特征在于,所述Cache的闪存Flash的存储区域包括多个存储块chunk,一个所述chunk包括一个chunk元数据区和一个chunk数据区,所述一个chunk元数据区包括至少一个元数据块,所述一个chunk数据区包括与所述至少一个元数据块对应的至少一个数据区,所述元数据块包括多个元数据,所述数据区包括多个数据块,所述元数据块与所述数据区一一对应,所述元数据与所述数据块一一对应,所述方法包括:
接收写入IO请求命令,所述写入IO请求命令包括待写入数据的元数据;
在全局的伙伴队列中获取当前正在处理的伙伴组为第一伙伴组,每个伙伴组包含内存中的多个缓存块,每个伙伴组属于一个元数据组,一个所述元数据组对应一个所述元数据块;
判断所述第一伙伴组中是否有剩余缓存块且剩余缓存块能够写入所述待写入数据的全部元数据;
当所述第一伙伴组中有剩余缓存块且剩余缓存块能够写入所述待写入数据的全部元数据时,向所述第一伙伴组的剩余缓存块中写入所述待写入数据的全部元数据,并向与所述第一伙伴组所属的元数据组对应的元数据块中写入所述待写入数据的全部元数据。
2.根据权利要求1所述的方法,其特征在于,当所述第一伙伴组中没有剩余缓存块或剩余缓存块不能够写入所述待写入数据的全部元数据时,则判断所述第一伙伴组所属的元数据组的伙伴队列中是否有剩余缓存块能够写入所述待写入数据的全部元数据的第二伙伴组,若有,则在所述第一伙伴组所属的元数据组的伙伴队列中获取所述第二伙伴组,向所述第二伙伴组的剩余缓存块中写入所述待写入数据的全部元数据,并向与所述第二伙伴组所属的元数据组对应的元数据块中写入所述待写入数据的全部元数据,所述全局的伙伴队列中包括所有元数据组的伙伴队列中包括的伙伴组。
3.根据权利要求2所述的方法,其特征在于,当所述第一伙伴组所属的元数据组的伙伴队列中没有剩余缓存块能够写入所述待写入数据的全部元数据的第二伙伴组时,则判断所述全局的伙伴队列中是否有剩余缓存块能够写入所述待写入数据的全部元数据的第三伙伴组,若有,则在所述全局的伙伴队列中获取所述第三伙伴组,向所述第三伙伴组的剩余缓存块中写入所述待写入数据的全部元数据,并向与所述第三伙伴组所属的元数据组对应的元数据块中写入所述待写入数据的全部元数据。
4.根据权利要求3所述的方法,其特征在于,当所述全局的伙伴队列中没有剩余缓存块能够写入所述待写入数据的全部元数据的第三伙伴组时,则判断全局的单缓存队列中是否有足够数量的剩余缓存块能够写入所述待写入数据的全部元数据,若有,则在所述全局的单缓存队列中获取能够写入所述待写入数据的全部元数据的剩余缓存块,向所获取的所述全局的单缓存队列中的剩余缓存块中写入所述待写入数据的全部元数据,并将所述待写入数据的全部元数据对应写入与所述全局的单缓存队列中的剩余缓存块所属的元数据组对应的元数据块中,所述全局的单缓存队列中包含所有元数据组的单缓存队列中中包含的不能与其他缓存块组成伙伴组的单个缓存块。
5.根据权利要求1所述的方法,其特征在于,每个伙伴组中包含的缓存块是按地址连续排列的。
6.根据权利要求1所述的方法,其特征在于,每个伙伴组中包含的剩余缓存块的个数被同时记录在所述全局的伙伴队列及所述元数据组的伙伴队列中,所述全局的伙伴队列及所述元数据组的伙伴队列中各队列记录的伙伴组包含的剩余缓存块的个数是不同的。
7.根据权利要求1至6任一所述的方法,其特征在于,在所述接收写入IO请求命令之后,在所述全局的伙伴队列中获取当前正在处理的伙伴组为第一伙伴组之前,所述方法还包括:
根据所述数据块的大小,判断是否需要对所述写入IO请求命令进行拆分;
若需要进行拆分,则根据所述数据块的大小,对所述写入IO请求命令进行拆分,得到多个第一写入IO请求命令;
对所述多个第一写入IO请求命令,分别判断各个第一写入IO请求命令中包括的待写入数据的元数据是否已缓存在所述内存中,如果是,则直接进行写操作,如果否,则执行在所述全局的伙伴队列中获取当前正在处理的伙伴组为第一伙伴组的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510568241.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:分享网页链接的方法、电子设备及系统
- 下一篇:一种制备羟基酯工艺改进系统