[发明专利]一致性布谷过滤器的操作方法有效
申请号: | 201910304801.X | 申请日: | 2019-04-16 |
公开(公告)号: | CN110046164B | 公开(公告)日: | 2021-07-02 |
发明(设计)人: | 郭得科;罗来龙;李江帆;李尚森 | 申请(专利权)人: | 中国人民解放军国防科技大学 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/2455 |
代理公司: | 北京风雅颂专利代理有限公司 11403 | 代理人: | 曾志鹏 |
地址: | 410003*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一致性 布谷 过滤器 操作方法 | ||
1.一致性布谷过滤器的操作方法,其特征是,所述操作方法包括元素插入,元素查询和元素删除;所述操作方法还包括对一致性布谷过滤器的容量进行调整,调整方式包括扩容、缩容、扩展和压缩,扩展是指向一致性布谷过滤器中增加未使用的索引独立布谷过滤器,压缩是指压缩稀疏索引独立布谷过滤器;
当要表示的元素数量急剧增加时,通过向一致性布谷过滤器中增加单个或多个未使用的索引独立布谷过滤器使得一致性布谷过滤器的容量增加,增加的索引独立布谷过滤器是异构的,桶和槽的数量能被调整;
当索引独立布谷过滤器因为集合元素的移除而变得稀疏时,一致性布谷过滤器尝试通过压缩操作将该索引独立布谷过滤器移除:
一致性布谷过滤器首先选取最低利用率的索引独立布谷过滤器向量并移除;
将被移除的索引独立布谷过滤器中的元素指纹ηx重新插入到一致性布谷过滤器中,如果所述被移除的索引独立布谷过滤器中的元素指纹ηx被成功插入到一致性布谷过滤器,被选择的所述被移除的索引独立布谷过滤器可以安全移除,否则,不需要进一步压缩一致性布谷过滤器,压缩持续移除索引独立布谷过滤器直到存在被移除的索引独立布谷过滤器不能被安全移除;
其中,所述一致性布谷过滤器包括s个异构的索引独立布谷过滤器,每个索引独立布谷过滤器有mi≥1个桶,每个桶有bi≥1个槽位,其中,s≥1,初始值为1,i∈[0,s-1];mi个桶被映射到一个范围从1到M-1的一致性哈希环中,其中M是一致性哈希环的取值范围;每个桶可存储0-b个指纹,且为每个元素x提供k≥1个候选桶,为了确定元素x的候选桶,k个相互独立的哈希函数被用于将元素指纹ηx映射到一致性哈希环中,k个哈希函数的k个最近的桶被认为是元素指纹ηx的候选桶。
2.根据权利要求1所述的一致性布谷过滤器的操作方法,其特征是,一致性布谷过滤器追踪每个索引独立布谷过滤器中插入的元素数量,并将插入最后一个元素的索引独立布谷过滤器标记为活跃索引独立布谷过滤器,元素插入的操作方式如下:
索引独立布谷过滤器将元素x映射到整数区间[0,2f-1]中来生成元素指纹ηx,其中f为元素指纹长度;
相互独立的k个哈希函数将元素指纹ηx映射到一致性哈希环中,基于生成的哈希值,一致性哈希决定元素指纹ηx在活跃索引独立布谷过滤器中的候选桶;
将元素指纹ηx按布谷哈希中的策略插入到活跃的索引独立布谷过滤器中,如果活跃索引独立布谷过滤器成功存储元素指纹ηx,那么插入结束;否则,一致性布谷过滤器会进行扩容操作或者扩展操作,扩容操作或者扩展操作后,将元素指纹ηx插入到扩容的或者扩展的索引独立布谷过滤器中。
3.根据权利要求1所述的一致性布谷过滤器的操作方法,其特征是,元素查询的操作方式如下:
通过相互独立的k个哈希函数对元素指纹ηx进行哈希来决定元素指纹ηx在一致性哈希环中的位置;
基于哈希值,一致性哈希得出对于元素指纹ηx在索引独立布谷过滤器中候选桶的位置:如果任一候选桶持有元素指纹ηx,成员关系查询终止,返回存在;相反,如果在所有的索引独立布谷过滤器中,都没有找到元素指纹ηx,一致性布谷过滤器判定元素x不属于集合A,返回不存在。
4.根据权利要求3所述的一致性布谷过滤器的操作方法,其特征是,元素x的删除需要首先进行成员关系查询来找出元素的可能位置,元素删除的操作方式如下:
如果对应的元素指纹ηx在一致性布谷过滤器中未找到,删除操作返回失败;如果对应的元素指纹ηx在一致性布谷过滤器中被找到则直接执行删除。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910304801.X/1.html,转载请声明来源钻瓜专利网。