[发明专利]一种使用布隆过滤器过滤文件的方法及装置有效
申请号: | 201680059828.1 | 申请日: | 2016-04-25 |
公开(公告)号: | CN108140050B | 公开(公告)日: | 2020-08-25 |
发明(设计)人: | 李勇 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F16/10 | 分类号: | G06F16/10 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 王仲凯 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 使用 过滤器 过滤 文件 方法 装置 | ||
1.一种使用布隆过滤器过滤文件的方法,其特征在于,所述方法应用于非关系型存储系统,所述方法包括:
确定第一布隆过滤器对应的第一行键数,其中,所述第一布隆过滤器为待过滤文件所对应的布隆过滤器,所述第一行键数为所述第一布隆过滤器的粗粒度行键数;
获取第一表图,其中,所述第一表图中包括粗粒度行键数与粗粒度行键数所对应的布隆过滤器的大小之间的对应关系,以及布隆过滤器的大小与布隆过滤器的大小所对应的哈希值集合之间的对应关系;
根据所述第一行键数查询所述第一表图中是否存在所述第一布隆过滤器的大小;
当所述第一表图中存在所述第一布隆过滤器的大小时,根据所述第一布隆过滤器的大小所对应的哈希值集合进行文件过滤。
2.根据权利要求1所述的方法,其特征在于,当所述第一表图中不存在所述第一布隆过滤器的大小时,所述方法还包括:
根据所述第一行键数确定所述第一布隆过滤器的大小;
根据所述第一行键数所对应的每个行键确定所述第一布隆过滤器的大小所对应的哈希值集合;
保存所述第一行键数与所述第一行键数所对应的所述第一布隆过滤器的大小之间的对应关系,以及所述第一布隆过滤器的大小与所述第一布隆过滤器的大小所对应的哈希值集合之间的对应关系。
3.根据权利要求1或2所述的方法,其特征在于,所述确定第一布隆过滤器对应的第一行键数包括:
获取所述第一布隆过滤器的实际行键数;
按照目标规则将所述第一布隆过滤器的实际行键数划分至对应的第一区间;
选取所述第一区间的右边界值确定为所述第一行键数。
4.根据权利要求1或2所述的方法,其特征在于,所述获取第一表图之前,所述方法还包括:
确定布隆过滤器的粗粒度行键数;
根据布隆过滤器的粗粒度行键数确定布隆过滤器的大小;
根据粗粒度行键数所对应的每个行键确定布隆过滤器的大小所对应的哈希值集合;
保存粗粒度行键数与粗粒度行键数所对应的布隆过滤器的大小之间的对应关系,以及布隆过滤器的大小与布隆过滤器的大小所对应的哈希值集合之间的对应关系。
5.根据权利要求4所述的方法,其特征在于,所述确定布隆过滤器的粗粒度行键数包括:
获取布隆过滤器的实际行键数;
按照目标规则将所述布隆过滤器的实际行键数划分至对应的区间内;
选取区间的右边界值确定为所述布隆过滤器的粗粒度行键数。
6.根据权利要求4所述的方法,其特征在于,所述根据粗粒度行键数所对应的每个行键确定布隆过滤器的大小所对应的哈希值集合之后,所述方法还包括:
将所述哈希值集合中的每个哈希值插入至对应的布隆过滤器上,并将所述每个哈希值对应的位置置为1。
7.一种布隆过滤器管理装置,其特征在于,所述布隆过滤器管理装置应用于非关系型存储系统,所述布隆过滤器管理装置包括:
确定模块,用于确定第一布隆过滤器对应的第一行键数,其中,所述第一布隆过滤器为待过滤文件所对应的布隆过滤器,所述第一行键数为所述第一布隆过滤器的粗粒度行键数;
获取模块,用于获取第一表图,其中,所述第一表图中包括粗粒度行键数与粗粒度行键数所对应的布隆过滤器的大小之间的对应关系,以及布隆过滤器的大小与布隆过滤器的大小所对应的哈希值集合之间的对应关系;
查询模块,用于根据所述确定模块确定的所述第一行键数查询所述获取模块获取的所述第一表图中是否存在所述第一布隆过滤器的大小;
过滤模块,用于当所述查询模块查询到所述第一表图中存在所述第一布隆过滤器的大小时,根据所述第一布隆过滤器的大小所对应的哈希值集合进行文件过滤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201680059828.1/1.html,转载请声明来源钻瓜专利网。