CN112818188A - 一种支持删除的布隆过滤的设计方法 - Google Patents
一种支持删除的布隆过滤的设计方法 Download PDFInfo
- Publication number
- CN112818188A CN112818188A CN202010840232.3A CN202010840232A CN112818188A CN 112818188 A CN112818188 A CN 112818188A CN 202010840232 A CN202010840232 A CN 202010840232A CN 112818188 A CN112818188 A CN 112818188A
- Authority
- CN
- China
- Prior art keywords
- bloom filter
- positions
- byte
- hash functions
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9035—Filtering based on additional data, e.g. user or group profiles
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Filtering Materials (AREA)
Abstract
本发明涉及计算机信息处理领域,尤其是一种支持删除的布隆过滤的设计方法,包括m字节的字节数组,初始时每个字节都初始化为0,增加一个元素时,k个字节位置至少有一个为0时,每个位置的值都在原来基础上加1;删除时,k个字节位置每个都大于0时,每个位置的值都在原来基础上减1;查询时,k个字节位置只要有一个位置的值为0,说明元素不在集合中;本发明稍微修改传统的布隆过滤器的数据结构,可以实现布隆过滤器的删除,并且,不影响查询效率。
Description
技术领域
本发明涉及计算机信息处理领域,尤其涉及一种支持删除的布隆过滤的设计方法。
背景技术
在海量的数据中,需要高效的将数据添加到数据集中;并可以方便高效的查询是否有数据在数据集,有时则需要删除数据集中的数据;布隆过滤器是一种数据结构,比较巧妙的概率型数据结构,特点是高效地插入和查询,可以用来告诉你“某样东西一定不存在或者可能存在。
目前市场上的布隆过滤器存在的缺陷:传统的布隆过滤器并不支持删除操作,为了能够消减数据集中无用的数据,就需要一种可以进行删除操作的布隆过滤器,同时不能降低了现有布隆过滤器添加和查询数据的效率。
发明内容
本发明的目的是为了解决现有技术中存在的缺点,而提出的一种支持删除的布隆过滤的设计方法。
为达到以上目的,本发明采用的技术方案为:一种支持删除的布隆过滤的设计方法,包括以下方法:
(i)将一个布隆过滤器中设有的m字节的字节数组初始化为0;
(ii)定义k个不同的哈希函数,并将k个哈希函数每一个都以均匀随机分布的方式映射到m字节的字节数组不同位置中的一个,取用外部元素时,用k个哈希函数将元素经由散列函数处理得到布隆过滤器中k个字节;
(iii)增加一个元素时,k个字节位置至少有一个为0时,每个位置的值都在原来基础上加1;如果k个位置均大于0,那么元素可能已经设置于集合中;
(iv)删除一个元素时,k个字节位置每个都大于0时,每个位置的值都在原来基础上减1;
(v)查询一个元素时,k个字节位置只要有一个位置的值为0,说明元素不在集合中。
进一步的,一种支持删除的布隆过滤器的设计方法,还包括以下方法:
(i)将一个布隆过滤器中设有的m个整型数据的int数组初始化为0;
(ii)定义k个不同的哈希函数,并将k个哈希函数每一个都以均匀随机分布的方式映射到m个整型数据的int数组不同位置中的一个,取用外部元素时,用k个哈希函数将元素经由散列函数处理得到布隆过滤器中k个位置;
(iii)增加一个元素时,k个字节位置至少有一个为0时,每个位置的值都在原来基础上加1;如果k个位置均大于0,那么元素可能已经设置于集合中;
(iv)删除一个元素时,k个字节位置每个都大于0时,每个位置的值都在原来基础上减1;
(v)查询一个元素时,k个字节位置只要有一个位置的值为0,说明元素不在集合中。
与现有技术相比,本发明具有以下有益效果:可以高效的支持布隆过滤器的删除操作,且并不影响添加和查询数据的效率。
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
因此,以下对提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的上述描述中,需要说明的是,该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
此外,术语“相同”等术语并不表示要求部件绝对相同,而是可以存在微小的差异;术语“垂直”仅仅是指部件之间的位置关系相对“平行”而言更加垂直,并不是表示该结构一定要完全垂直,而是可以稍微倾斜。
以下描述用于揭露本发明以使本领域技术人员能够实现本发明。以下描述中的优选实施例只作为举例,本领域技术人员可以想到其他显而易见的变型。
一种支持删除的布隆过滤的设计方法,包括以下方法:
(i)将一个布隆过滤器中设有的m字节的字节数组初始化为0;
(ii)定义k个不同的哈希函数,并将k个哈希函数每一个都以均匀随机分布的方式映射到m字节的字节数组不同位置中的一个,取用外部元素时,用k个哈希函数将元素经由散列函数处理得到布隆过滤器中k个字节;
(iii)增加一个元素时,k个字节位置至少有一个为0时,每个位置的值都在原来基础上加1;如果k个位置的值均大于0,那么元素可能已经设置于集合中;
(iv)删除一个元素时,k个字节位置每个都大于0时,每个位置的值都在原来基础上减1;
(v)查询一个元素时,k个字节位置只要有一个位置的值为0,说明元素不在集合中。
一种支持删除的布隆过滤器的设计方法,还包括以下方法:
(i)将一个布隆过滤器中设有的m个整型数据的int.数组初始化为0;
(ii)定义k个不同的哈希函数,并将k个哈希函数每一个都以均匀随机分布的方式映射到m个整型数据的int.数组不同位置中的一个,取用外部元素时,用k个哈希函数将元素经由散列函数处理得到布隆过滤器中k个位置;
(iii)增加一个元素时,k个字节位置至少有一个为0时,每个位置的值都在原来基础上加1;如果k个位置均大于0,那么元素可能已经设置于集合中;
(iv)删除一个元素时,k个字节位置每个都大于0时,每个位置的值都在原来基础上减1;
(v)查询一个元素时,k个字节位置只要有一个位置的值为0,说明元素不在集合中。
在本发明中:int.函数可以是long int.或short int.等。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。
本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明的范围内。
本发明要求的保护范围由所附的权利要求书及其等。
Claims (2)
1.一种支持删除的布隆过滤的设计方法,其特征在于,包括以下方法:
(i)将一个布隆过滤器中设有的m字节的字节数组初始化为0;
(ii)定义k个不同的哈希函数,并将k个哈希函数每一个都以均匀随机分布的方式映射到m字节的字节数组不同位置中的一个,取用外部元素时,用k个哈希函数将元素经由散列函数处理得到布隆过滤器中k个字节;
(iii)增加一个元素时,k个字节位置至少有一个为0时,每个位置的值都在原来基础上加1;如果k个位置均大于0时,那么元素可能已经设置于集合中;
(iv)删除一个元素时,k个字节位置每个都大于0时,每个位置的值都在原来基础上减1;
(v)查询一个元素时,k个字节位置只要有一个位置的值为0,说明元素不在集合中。
2.一种支持删除的布隆过滤器的设计方法,其特征在于,还包括以下方法:
(i)将一个布隆过滤器中设有的m个整型数据的int数组初始化为0;
(ii)定义k个不同的哈希函数,并将k个哈希函数每一个都以均匀随机分布的方式映射到m个整型数据的int数组不同位置中的一个,取用外部元素时,用k个哈希函数将元素经由散列函数处理得到布隆过滤器中k个int位置;
(iii)增加一个元素时,k个int位置至少有一个为0时,每个位置的值都在原来基础上加1;如果k个位置均大于0,那么元素可能已经设置于集合中;
(iv)删除一个元素时,k个int位置每个都大于0时,每个位置的值都在原来基础上减1;
(v)查询一个元素时,k个int位置只要有一个位置的值为0,说明元素不在集合中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010840232.3A CN112818188A (zh) | 2020-08-19 | 2020-08-19 | 一种支持删除的布隆过滤的设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010840232.3A CN112818188A (zh) | 2020-08-19 | 2020-08-19 | 一种支持删除的布隆过滤的设计方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112818188A true CN112818188A (zh) | 2021-05-18 |
Family
ID=75852993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010840232.3A Pending CN112818188A (zh) | 2020-08-19 | 2020-08-19 | 一种支持删除的布隆过滤的设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112818188A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080256094A1 (en) * | 2007-04-12 | 2008-10-16 | Cisco Technology, Inc. | Enhanced bloom filters |
CN101901248A (zh) * | 2010-04-07 | 2010-12-01 | 北京星网锐捷网络技术有限公司 | 一种布隆过滤器的生成、更新以及查询元素方法和装置 |
CN101923568A (zh) * | 2010-06-23 | 2010-12-22 | 北京星网锐捷网络技术有限公司 | 布隆过滤器的元素增加、删除方法以及布隆过滤器 |
CN105260429A (zh) * | 2015-09-30 | 2016-01-20 | 河南科技大学 | 一种基于多重布隆过滤器的icn网络信息名字查找方法 |
US20190026218A1 (en) * | 2017-07-19 | 2019-01-24 | International Business Machines Corporation | Updating cache using two bloom filters |
CN109408505A (zh) * | 2018-09-03 | 2019-03-01 | 中新网络信息安全股份有限公司 | 一种布隆过滤器的生成方法 |
-
2020
- 2020-08-19 CN CN202010840232.3A patent/CN112818188A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080256094A1 (en) * | 2007-04-12 | 2008-10-16 | Cisco Technology, Inc. | Enhanced bloom filters |
CN101901248A (zh) * | 2010-04-07 | 2010-12-01 | 北京星网锐捷网络技术有限公司 | 一种布隆过滤器的生成、更新以及查询元素方法和装置 |
CN101923568A (zh) * | 2010-06-23 | 2010-12-22 | 北京星网锐捷网络技术有限公司 | 布隆过滤器的元素增加、删除方法以及布隆过滤器 |
CN105260429A (zh) * | 2015-09-30 | 2016-01-20 | 河南科技大学 | 一种基于多重布隆过滤器的icn网络信息名字查找方法 |
US20190026218A1 (en) * | 2017-07-19 | 2019-01-24 | International Business Machines Corporation | Updating cache using two bloom filters |
CN109408505A (zh) * | 2018-09-03 | 2019-03-01 | 中新网络信息安全股份有限公司 | 一种布隆过滤器的生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5847578B2 (ja) | 個別にアクセス可能なデータユニットの記憶の取り扱い方法 | |
US20020122543A1 (en) | System and method of indexing unique electronic mail messages and uses for the same | |
US20140136789A1 (en) | Host side deduplication | |
US10756757B2 (en) | Maintaining data deduplication reference information | |
CN107704202B (zh) | 一种数据快速读写的方法和装置 | |
CN111241108B (zh) | 基于键值对kv系统的索引方法、装置、电子设备和介质 | |
AU2018290753B2 (en) | Systems and methods of creation and deletion of tenants within a database | |
US20170351731A1 (en) | Maintaining i/o transaction metadata in log-with-index structure | |
JP2004348744A (ja) | テーブルに対して行われる変更を識別する識別方法及びそのシステム | |
CN112817538B (zh) | 数据处理的方法、装置、设备和存储介质 | |
CN110109866B (zh) | 一种文件系统目录的管理方法及设备 | |
CN115599807A (zh) | 一种数据存取方法、装置、应用服务器及存储介质 | |
CN111324620A (zh) | 数据处理方法、装置及存储介质 | |
CN112818188A (zh) | 一种支持删除的布隆过滤的设计方法 | |
WO2024022330A1 (zh) | 一种基于文件系统的元数据管理方法及其相关设备 | |
CN111026762A (zh) | 红黑树索引生成方法、装置、电子设备及存储介质 | |
CN111290700B (zh) | 分布式数据读写方法和系统 | |
CN113806803B (zh) | 一种数据存储方法、系统、终端设备及存储介质 | |
CN105740442A (zh) | 一种HBase中的数据存储方法 | |
EP3736705A1 (en) | Date query method and device | |
EP3082050A1 (en) | Mass data fusion storage method and system | |
US20130218851A1 (en) | Storage system, data management device, method and program | |
CN113094526A (zh) | 图片批量上传与展示方法、装置、计算机设备及存储介质 | |
CN101556590A (zh) | 一种分类存取海量小文件的方法 | |
CN114866594B (zh) | 设备连接管理方法、装置、系统、服务器及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |