[发明专利]一种内存垃圾回收方法及系统有效
申请号: | 201710508964.0 | 申请日: | 2017-06-28 |
公开(公告)号: | CN107329903B | 公开(公告)日: | 2021-03-02 |
发明(设计)人: | 朱斌;姜怡坤;侯英利 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02;G06F12/06 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王宝筠 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 垃圾 回收 方法 系统 | ||
1.一种内存垃圾回收方法,其特征在于,应用于全闪存阵列的I0栈数据块的内存垃圾回收,该方法包括:
确定在所述I0栈中占用的数据块,所述数据块为在读写文件时,在上层应用使用偏移和长度来操作的文件;
将所述数据块是否在被其他上层数据块引用映射到布隆过滤器上,记录所述数据块的映射关系;
当查询所述数据块时,通过所述布隆过滤器的多个哈希函数计算所述数据块的多个映射记录位;
查询所述多个映射记录位确定所述数据块是否被标记;
当所述多个映射记录位均被标记,则所述数据块处于被引用状态,所述数据块不进行回收;
当所述多个映射记录位至少有一个映射记录位未标记,则所述数据块处于未被引用状态,则所述数据块进行回收;
当再次接收到所述数据块的映射记录请求,通过多个哈希函数计算所述数据块所需要占用的映射记录位;
将所述数据块所需要占用的映射记录位无冲突时进行解引用,相应位清零,并存储到所述布隆过滤器的存储单元上,相应的所述映射记录位计数清零;
将所述数据块所需要占用的映射记录位有冲突时进行解引用,将所述映射记录位与所述布隆过滤器中当前记录状况进行对比,若所述映射记录位的计数大于1,则将所述映射记录位的计数减一,若所述映射记录位的计数等于1,则将所述映射记录位的计数清零,并存储到所述布隆过滤器的存储单元上;
其中:所述将所述数据块映射到布隆过滤器上,记录所述数据块的映射关系,包括:
接收所述数据块的映射记录请求,通过多个哈希函数计算所述数据块所需要占用的映射记录位;
将计算得到的所述映射记录位存储到所述布隆过滤器的存储单元上;
当所述映射关系为初次记录时,则将所述存储单元上相应的所述映射记录位计数标记为1;
或;
接收所述数据块的映射记录请求,通过多个哈希函数计算所述数据块所需要占用的映射记录位;
将计算得到的所述映射记录位存储到所述布隆过滤器的存储单元上;
当所述映射关系与之前的所述映射记录位无冲突时,则将所述存储单元上相应的所述映射记录位计数标记为1;
或;
接收所述数据块的映射记录请求,通过多个哈希函数计算所述数据块所需要占用的映射记录位;
将计算得到的所述映射记录位存储到所述布隆过滤器的存储单元上;
当所述映射关系与之前的所述映射记录位有冲突时,则将无冲突的所述映射记录位计数标记为1,有冲突的所述映射记录位的计数标记增加。
2.一种内存垃圾回收系统,其特征在于,应用于全闪存阵列的I0栈数据块的内存垃圾回收,该系统包括:
确定单元,用于确定在所述I0栈中占用的数据块,所述数据块为在读写文件时,在上层应用使用偏移和长度来操作的文件;
映射单元,用于将所述数据块是否在被其他上层数据块引用映射到布隆过滤器上,记录所述数据块的映射关系;
计算单元,用于当查询所述数据块时,通过所述布隆过滤器的多个哈希函数计算所述数据块的多个映射记录位;
查询单元,用于查询所述多个映射记录位确定所述数据块是否被标记;
当所述多个映射记录位均被标记,则所述数据块处于被引用状态,所述数据块不进行回收;
当所述多个映射记录位至少有一个映射记录位未标记,则所述数据块处于未被引用状态,则所述数据块进行回收;
计算单元,用于当再次接收到所述数据块的映射记录请求,通过多个哈希函数计算所述数据块所需要占用的映射记录位;
第一解引用单元,用于将所述数据块所需要占用的映射记录位无冲突时进行解引用,相应位清零,并存储到所述布隆过滤器的存储单元上,相应的所述映射记录位计数清零;
第二解引用单元,用于将所述数据块所需要占用的映射记录位有冲突时进行解引用,将所述映射记录位与所述布隆过滤器中当前记录状况进行对比,若所述映射记录位的计数大于1,则将所述映射记录位的计数减一,若所述映射记录位的计数等于1,则将所述映射记录位的计数清零,并存储到所述布隆过滤器的存储单元上;
其中,所述映射单元包括:
第一接收单元,用于接收所述数据块的映射记录请求,通过多个哈希函数计算所述数据块所需要占用的映射记录位;
第一存储单元,用于将计算得到的所述映射记录位存储到所述布隆过滤器的存储单元上;
当所述映射关系为初次记录时,则将所述存储单元上相应的所述映射记录位计数标记为1;
或;
所述映射单元包括:
第二接收单元,用于接收所述数据块的映射记录请求,通过多个哈希函数计算所述数据块所需要占用的映射记录位;
第二存储单元,用于将计算得到的所述映射记录位存储到所述布隆过滤器的存储单元上;
当所述映射关系与之前的所述映射记录位无冲突时,则将所述存储单元上相应的所述映射记录位计数标记为1;
或;
所述映射单元包括:
第三接收单元,用于接收所述数据块的映射记录请求,通过多个哈希函数计算所述数据块所需要占用的映射记录位;
第三存储单元,用于将计算得到的所述映射记录位存储到所述布隆过滤器的存储单元上;
当所述映射关系与之前的所述映射记录位有冲突时,则将无冲突的所述映射记录位计数标记为1,有冲突的所述映射记录位的计数标记增加。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710508964.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种汽车尾气排放装置的催化反应器
- 下一篇:数据读取方法及装置