CN112148928B - 一种基于指纹家族的布谷鸟过滤器 - Google Patents
一种基于指纹家族的布谷鸟过滤器 Download PDFInfo
- Publication number
- CN112148928B CN112148928B CN202010983776.5A CN202010983776A CN112148928B CN 112148928 B CN112148928 B CN 112148928B CN 202010983776 A CN202010983776 A CN 202010983776A CN 112148928 B CN112148928 B CN 112148928B
- Authority
- CN
- China
- Prior art keywords
- fingerprint
- candidate
- fingerprints
- data member
- target
- 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.)
- Active
Links
- 241000544061 Cuculus canorus Species 0.000 title claims abstract description 89
- 238000012217 deletion Methods 0.000 abstract description 13
- 230000037430 deletion Effects 0.000 abstract description 13
- 238000003780 insertion Methods 0.000 abstract description 9
- 230000037431 insertion Effects 0.000 abstract description 9
- 238000000034 method Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 12
- 229920002430 Fibre-reinforced plastic Polymers 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 239000011151 fibre-reinforced plastic Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012966 insertion method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Collating Specific Patterns (AREA)
Abstract
本发明公开了一种基于指纹家族的布谷鸟过滤器,所述基于指纹家族的布谷鸟过滤器包括布谷鸟哈希表,所述布谷鸟哈希表包括若干存储桶,每个数据成员对应若干指纹,若干指纹中的各指纹存储于不同存储桶内;当布谷鸟过滤器接收到数据成员管理操作时,基于加减法操作确定数据成员对应的若干指纹以及各指纹对应的候选存储桶,并基于确定得到的各指纹以及各指纹对应的候选存储桶执行所述数据成员管理操作。本发明通过为各数据成员分配若干指纹和若干候选存储桶,并且若干指纹的数量可以大于或者等于2,这样不仅可以提高存储空间效率,而且支持快速插入、删除和查询操作。
Description
技术领域
本发明涉及计算机信息表示与信息检索技术领域,特别涉及一种基于指纹家族的布谷鸟过滤器。
背景技术
成员隶属查询(Membership Query)是许多网络应用和分布式系统(例如:协同缓存、数据包处理、键值存储和重复数据删除)的关键方法之一,要求满足存储空间开销低、快速查询和增量更新等三个关键需求。目前成员隶属查询普遍采用布鲁姆过滤器(BloomFilter)、标准布鲁姆过滤器(Standard Bloom Filter)、计数布鲁姆过滤器(CountingBloom Filter)以及布谷鸟过滤器(Cuckoo Filter)等,但是布鲁姆过滤器(Bloom Filter)及其变型难以同时满足上述三个关键需求。例如,标准布鲁姆过滤器支持元素插入和查询操作,但是不支持元素删除操作。计数布鲁姆过滤器是一种支持删除操作的布鲁姆过滤器,但是其存储空间开销高。布谷鸟过滤器是一种支持删除操作的空间高效布鲁姆过滤器,显著减少计数布鲁姆过滤器的存储空间开销,甚至比标准布鲁姆过滤器的存储空间开销低。但是,现有布谷鸟过滤器存在每个数据成员的存储空间开销随元素个数动态变化的问题,其原因是布谷鸟过滤器的异或操作要求存储桶数必须为2的幂(即2b,b为指数),导致最坏情况的每个数据成员的存储空间开销增大2倍。
因而现有技术还有待改进和提高。
发明内容
本发明要解决的技术问题在于,针对现有技术的不足,提供一种基于指纹家族的布谷鸟过滤器。
为了解决上述技术问题,本发明所采用的技术方案如下:
一种基于指纹家族的布谷鸟过滤器,所述布谷鸟过滤器包括布谷鸟哈希表,所述布谷鸟哈希表包括若干存储桶,每个数据成员对应若干指纹,若干指纹中的各指纹存储于不同存储桶内;当布谷鸟过滤器接收到数据成员管理操作时,基于加减法操作确定数据成员对应的若干指纹以及各指纹对应的候选存储桶,并基于确定得到的各指纹以及各指纹对应的候选存储桶执行所述数据成员管理操作。
所述基于指纹家族的布谷鸟过滤器,其中,所述指纹均包括选项以及余数,数据成员对应的若干指纹中的各指纹的余数相同且选项互不相同。
所述基于指纹家族的布谷鸟过滤器,其中,所述数据成员管理操作包括插入操作、查询操作以及删除操作中的一种或多种。
所述基于指纹家族的布谷鸟过滤器,其中,所述数据成员对应的若干指纹的数量大于或者等于2。
所述基于指纹家族的布谷鸟过滤器,其中,所述基于加减法操作确定数据成员对应的若干指纹以及各指纹对应的候选存储桶具体包括:
确定所述数据成员对应的候选指纹及候选哈希值;
基于所述候选指纹,采用加减法操作确定所述数据成员对应到的其余指纹,以得到数据成员对应的若干指纹;
对于若干指纹中的每个指纹,根据该指纹以及所述候选哈希值,确定该指纹对应的候选存储桶,以得到各指纹对应的候选存储桶。
所述基于指纹家族的布谷鸟过滤器,其中,当所述数据成功管理操作为插入操作时,所述基于确定得到的各指纹以及各指纹对应的候选存储桶执行所述数据成员管理操作具体包括:
检测所述各候选存储桶是否存在空闲存储位置;
若存在空闲存储位置,则将数据成员的候选指纹存储于该空闲存储位置,其中,所述候选指纹为该空闲存储位置所属候选存储桶对应的指纹。
所述基于指纹家族的布谷鸟过滤器,其中,当所述数据成员管理操作为插入操作时,所述基于确定得到的各指纹以及各指纹对应的候选存储桶执行所述数据成员管理操作包括:
若未存在空闲存储位置,则在所述若干候选存储桶中选取一目标候选存储桶,将目标候选存储桶对应的指纹作为数据成员对应的指纹;
在所述目标候选存储桶内选取一目标指纹,将所述数据成员对应的指纹存储于所述目标指纹对应的存储位置;
根据所述目标指纹以及目标候选存储桶,采用加减法操作确定所述目标指纹对应的各参考指纹以及各参考候选存储桶;
若存在具有空闲存储位置的参考存储桶,则将参考指纹存储于该空闲存储位置。
若未存在具有空闲存储位置的参考存储桶,将目标指纹对应的目标候选存储桶以及各参考存储桶作为若干候选存储桶,并继续执行在所述若干候选存储桶中选取一目标候选存储桶的步骤,直至存在具有空闲存储位置的参考存储桶或执行次数达到预设次数阈值。
所述基于指纹家族的布谷鸟过滤器,其中,所述根据所述目标指纹以及目标候选存储桶,采用加减法操作确定所述目标指纹对应的各参考指纹以及各参考候选存储桶具体包括:
获取所述目标指纹的目标选项以及目标余数,采用加减法确定目标选项对应的各参考选项,并根据各参考选项以及目标余数确定各参考指纹;
根据所述目标指纹以及目标候选桶,确定目标指纹对应的目标数据元素的哈希值;
基于所述哈希值以及各参考指纹,确定各参考指纹对应的参考存储桶。
所述基于指纹家族的布谷鸟过滤器,其中,所述当所述数据成员管理操作为查询操作或删除操作时,所述基于确定得到的各指纹以及各指纹对应的候选存储桶执行所述数据成员管理操作具体包括:
分别各指纹对应的选存储桶中分别查找各指纹;
若查找到所述数据成员对应的指纹,则对该指纹执行该数据成员管理操作;
若未查找到所述数据成员对应的指纹,则提示数据成员管理操作失败。
所述基于指纹家族的布谷鸟过滤器,其中,所述对该指纹执行该数据成员管理操作具体包括:
当数据成员管理操作为查询操作时,则提示数据成员查询成功;
当数据成员管理操作为删除操作时,则删除查找到的所述数据成员对应的指纹。
有益效果:与现有技术相比,本发明提供了一种基于指纹家族的布谷鸟过滤器,所述基于指纹家族的布谷鸟过滤器包括布谷鸟哈希表,所述布谷鸟哈希表包括若干存储桶,每个数据成员对应若干指纹,若干指纹中的各指纹存储于不同存储桶内;当布谷鸟过滤器接收到数据成员管理操作时,基于加减法操作确定数据成员对应的若干指纹以及各指纹对应的候选存储桶,并基于确定得到的各指纹以及各指纹对应的候选存储桶执行所述数据成员管理操作。本发明通过为各数据成员分配若干指纹和若干候选存储桶,并且若干指纹的数量可以大于或者等于2,这样不仅可以提高存储空间效率,而且支持快速插入、删除和查询操作。
附图说明
图1为本发明提供的基于指纹家族的布谷鸟过滤器的一个示例。
图2为本发明提供的指纹的格式图。
图3为本发明提供的基于指纹家族的布谷鸟过滤器中插入数据成员的流程图。
图4为在本发明提供的基于指纹家族的布谷鸟过滤器中插入数据成员的一个示例。
图5为在本发明提供的基于指纹家族的布谷鸟过滤器中插入数据成员的另一个示例。
图6为在本发明提供的基于指纹家族的布谷鸟过滤器中查找数据成员的流程图。
图7为在本发明提供的基于指纹家族的布谷鸟过滤器中查找数据成员的示例。
图8为在本发明提供的基于指纹家族的布谷鸟过滤器中删除数据成员的流程图。
图9为在本发明提供的基于指纹家族的布谷鸟过滤器中删除数据成员的示例。
具体实施方式
本发明提供一种基于指纹家族的布谷鸟过滤器,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
发明人经过研究发现,成员隶属查询(Membership Query)是许多网络应用和分布式系统(例如:协同缓存、数据包处理、键值存储和重复数据删除)的关键方法之一,要求满足存储空间开销低、快速查询和增量更新等三个关键需求。目前成员隶属查询普遍采用布鲁姆过滤器(Bloom Filter)、标准布鲁姆过滤器(Standard BloomFilter)、计数布鲁姆过滤器(Counting Bloom Filter)和布谷鸟过滤器(Cuckoo Filter)等。
标准布鲁姆过滤器采用m个比特(即位图)来表示一个集合的n个元素(Item),即每个插入的元素采用k个哈希函数映射到位图的k个比特,该k个比特值设置为1。每个待查询的元素采用相同的k个哈希函数映射到位图的k个比特,检查该k个比特值是否全为1;如果全为1,表明该元素在集合中;否则,表明该元素不在集合中。标准布鲁姆过滤器是一种空间高效的随机化数据结构,查询的假阳性错误率低(False Positive Rate)(即查询结果表明元素在集合中,但是该元素实际上不在该集合中),但不产生假阴性错误(FalseNegatives)(即如果查询结果表明元素不在集合中,那么该元素一定不在该集合中)。标准布鲁姆过滤器支持元素插入和查询操作,但是不支持元素删除操作。
计数布鲁姆过滤器是一种支持删除操作的布鲁姆过滤器,即采用m个计数器(Counter)来表示一个集合的n个元素。当插入元素时,采用k个哈希函数映射元素到k个计数器,该k个计数器值自增1;当删除元素时,该k个计数器值自减1。当查询元素时,采用相同的k个哈希函数映射元素到k个计数器,检查该k个计数器值是否全大于1;如果全大于1,表明该元素在集合中;否则,表明该元素不在集合中。在实际应用中,计数器大小设置为4比特,可避免计数器溢出问题。因此,计数布鲁姆过滤器支持快速增量更新,但是其存储空间开销高,是标准布鲁姆过滤器的4倍。
布谷鸟过滤器是一种支持删除操作的空间高效布鲁姆过滤器,显著减少计数布鲁姆过滤器的存储空间开销,甚至比标准布鲁姆过滤器的存储空间开销低。布谷鸟过滤器采用布谷鸟哈希表(Cuckoo Hash Table)和基于异或操作(XOR)的候选存储桶索引值计算,即在每个元素哈希映射的两个候选存储桶(Bucket)中,插入或删除或查询该元素的一个指纹(Fingerprint),而不是该元素本身。但是,布谷鸟过滤器存在每个数据成员的存储空间开销随元素个数动态变化的问题,其原因是布谷鸟过滤器的异或操作要求存储桶数必须为2的幂(即2b,b为指数),导致最坏情况的每个数据成员的存储空间开销增大2倍。
另外,布谷鸟过滤器仅支持k=2个哈希函数,即每个元素哈希映射到两个候选存储桶,不支持哈希函数个数k>2的情况。这是由于布谷鸟过滤器的异或操作仅支持两个操作数(即一个候选存储桶索引值和一个指纹候选哈希值)。然而,当哈希函数个数k>2时,布谷鸟哈希表的负载因子(即存储的元素个数与哈希表存储位置数的比值)增大,可以增加存储的元素个数,从而可以减少每个元素的存储空间开销(即过滤器存储空间与存储的元素个数的比值)。
基于此,在本发明实施例一种基于指纹家族的布谷鸟过滤器,所述基于指纹家族的布谷鸟过滤器包括布谷鸟哈希表,所述布谷鸟哈希表包括若干存储桶,每个数据成员对应若干指纹,若干指纹中的各指纹存储于不同存储桶内;当布谷鸟过滤器接收到数据成员管理操作时,基于加减法操作确定数据成员对应的若干指纹以及各指纹对应的候选存储桶,并基于确定得到的各指纹以及各指纹对应的候选存储桶执行所述数据成员管理操作。本发明实施例通过为各数据成员分配若干指纹和若干候选存储桶,并且若干指纹的数量可以大于或者等于2,这样不仅可以提高存储空间效率,而且支持快速插入、删除和查询操作。
下面结合附图,通过对实施例的描述,对发明内容作进一步说明。
本实施提供了一种基于指纹家族的布谷鸟过滤器(Generalized Cuckoo Filterwith A Family of Fingerprints,简称CFFF),如图1所示,所述基于指纹家族的布谷鸟过滤器包括布谷鸟哈希表,其中,所述布谷鸟哈希表可以为紧凑布谷鸟哈希表。所述布谷鸟哈希表包括m存储桶(Bucket),每个存储桶包括b存储位置(Slot),并采用k个哈希函数将每个元素映射到k个可互相推导的指纹,其中,m,b以及k均为正整数,并且m大于k。在本实施例的一个具体实现方式中,所述哈希函数个数k=4,每个存储桶包含b=1个存储位置且过滤器的负载因子为0.95,该(4,1)-CFFF具有最小的元素的存储空间开销和最快的查询和更新性能。
所述基于指纹家族的布谷鸟过滤器为数据成员分配若干指纹,并分别将若干指纹分别映射至若干候选存储桶,以使得每个指纹对应一个候选存储桶。对于数据成员对应的若干指纹,在确定若干指纹中的一个指纹后,可以基于该指纹以及加减法操作确定除该指纹外的任一指纹。可以理解的是,在获取到数据成员时,基于该数据成员可以计算得到数据成员对应的指纹A,再加减法操作可以确定该数据成员对应的若干指纹从该指纹A的其余指纹,以确定数据成员对应的若干指纹。例如,数据成员x对应k个指纹,分别记为在基于数据元素确定得到指纹/>后,可以基于指纹/>确定指纹此外,在获取到若干指纹后,可以基于各指纹确定各指纹对应的候选存储桶,例如,将指纹对应的k个候选存储桶分别记为h0(x),h1(x),...,hk-1(x),那么可以基于指纹/>确定其对应的候选存储桶h0(x),可以基于指纹/>确定其对应的候选存储桶h1(x),依次类推,基于指纹/>确定其对应的候选存储桶hk-1(x)。当然,值得说明的是,所述布谷鸟哈希表对应的存储桶数m可以不为2的幂,即存储桶数可以不为2a,a为指数,a为正整数。例如,存储桶数可以不为4,8,16等。
所述布谷鸟哈希表中的每个存储桶均包括指定数量b的存储位置,其中,存储位置用于存储数据成员的指纹,并且每个存储位置存储一个数据成员的指纹。此外,所述指定数量可以根据实际需要确定。例如,所述指定数量为4,说明布谷鸟哈希表中的每个存储桶均包含四个存储位置,即每个存储桶可以存储四个数据成员的指纹。
如图2所示,所述指纹包括选项(Choice)以及指纹余数(Remainder),其中,所述选项用于表示指纹为数据成员对应的k个指纹中该指纹的标识,所述选项占用的比特可以根据数据成员对应的指纹的数量确定,例如,选项包括log2(k)个比特,用于表示指纹的唯一编码。所述指纹余数为指纹除该选项外的r个比特。对于一个数据成员,该数据成员对应的k个指纹中的各指纹的指纹余数相同,但各指纹各自对应的选项不同,以通过选项来区分该数据成员对应的k个指纹。例如,基于指纹家族的布谷鸟过滤器为数据成员分配4个指纹,指纹的指纹余数占用6各比特,那么数据成员x对应的指纹家族包含4个指纹,分别为假设第0个指纹/>为二进制值10011011,其选项为二进制值10,其余数为011011,第1个指纹/>为二进制值11011011,第2个指纹/>为二进制值00011011,第3个指纹/>为二进制值01011011,其中,/>的选项互不相同,/> 的指纹余数均为011011。
在本实施例的一个实现方式中,在数据成员x对应的指纹家族中,第0个指纹可以基于数据成员x确定,其余指纹可以基于第0个指纹确定,其中,所述确定过程可以为在第0个指纹的选项上累加1,以得到第1个指纹,在在第0个指纹的选项上累加2,以得到第2个指纹,依次类推,在第0个指纹的选项上累加k-1,以得到第k-1个指纹。例如,数据成员x对应的指纹家族包含4个指纹,分别为假设第0个指纹/>为二进制值10011011,其选项为二进制值10,其余数为011011,那么在第0个指纹/>的选项上累加1,得到第1个指纹/>为二进制值11011011,在在第0个指纹/>的选项上累加2,得到第2个指纹/>为二进制值00011011,在在第0个指纹/>的选项上累加3,得到第3个指纹/>为二进制值01011011.
基于此,在本实施例的一个实现方式中,所述基于加减法操作确定数据成员对应的若干指纹以及各指纹对应的候选存储桶具体包括:
确定所述数据成员对应的候选指纹及候选哈希值;
基于所述候选指纹,采用加减法操作确定所述数据成员对应到的其余指纹,以得到数据成员对应的若干指纹;
对于若干指纹中的每个指纹,根据该指纹以及所述候选哈希值,确定该指纹对应的候选存储桶,以得到各指纹对应的候选存储桶。
具体地,所述候选指纹为所述数据成员对应的若干指纹中的一个指纹,所述候选指纹和所述候选哈希值通过采用计算该数据成员的哈希值确定得到,其中,所述哈希值可以通过哈希函数计算得到,其中,所述候选指纹为数据成员的第0个指纹。所述候选指纹和候选哈希值的计算公式可以为:
其中,为数据成员的第0个指纹(即候选指纹),H(x)为候选哈希值,x为数据成员,G(x)为数据成员x对应的哈希值,其中,所述哈希值中的低位数值为/>高位数值为H(x),“:”为数值连接符。
进一步,在获取到第0个指纹(即候选指纹)之后,基于第0个指纹(即候选指纹)计算数据成员对应的指纹家族中的其余指纹,其中,数据成员对应的指纹家族包括k个指纹,分别记为以及k个候选存储桶,分别记为h0(x),h1(x),...,hk-1(x),所述第0个指纹(即候选指纹)为/>数据元素x对应的k个指纹的计算公式分别为:
其中,表示第i个指纹的选项,i的范围为[0,...,k-1],rx表示指纹余数,“:”是数值连接符。
进一步,第0个指纹是根据哈希值确定,第0个指纹的选项为第0个指纹的高位数值,并且第0个指纹的选项包含的比特为log2(k),k为数据成员对应的指纹数量。当1≤i≤k-1时,数据成员x的第i个指纹的选项为/>其中,/>是第0个指纹/>的选项。数据成员x的k个指纹的指纹余数相同,即k个指纹的指纹余数均为rx。
基于数据成员x的k个可以计算数据成员x的k个候选存储桶索引值h0(x),h1(x),...,hk-1(x),其中,h0(x),h1(x),...,hk-1(x)的计算公式如下:
其中,H(x)为候选哈希值,为第i个指纹的哈希值,并且/>的范围为[0,...,m-1],“+”是加法操作;数据成员x的k个候选存储桶索引值h0(x),h1(x),...,hk-1(x)的范围为[0,...,m-1],m为基于指纹家族的布谷鸟过滤器的存储桶的数量,i的范围为[0,...,k-1]。
在本实施例的一个实现方式中,所述数据成员管理操作包括插入操作、查询操作以及删除操作中的一种或多种。在本实施例中,所述数据成员管理操作可以为插入操作、查询操作或者删除操作。可以理解的是,所述基于指纹家族的布谷鸟过滤器支持插入操作、查询操作以及删除操作。下面分别以实现方式的形成对插入操作、查询操作以及删除操作进行具体说明。
在本实施例的一个实现方式中,所述数据成员管理操作为插入操作;如图3所示,所述当布谷鸟过滤器接收到数据成员管理操作时,基于加减法操作确定数据成员对应的若干指纹以及各指纹对应的候选存储桶,并基于确定得到的各指纹以及各指纹对应的候选存储桶执行所述数据成员管理操作具体包括:
A10、确定所述数据成员对应的候选指纹及候选哈希值;
A20、基于所述候选指纹,采用加减法操作确定所述数据成员对应到的其余指纹,以得到数据成员对应的若干指纹;
A30、对于若干指纹中的每个指纹,根据该指纹以及所述候选哈希值,确定该指纹对应的候选存储桶,以得到各指纹对应的候选存储桶;
A40、检测所述各候选存储桶是否存在空闲存储位置,若存在空闲存储位置,则执行步骤A50;若未存在空闲存储位置,则执行步骤A60;
A50、将数据成员的候选指纹存储于该空闲存储位置,其中,所述候选指纹为该空闲存储位置所属候选存储桶对应的指纹;
A60、在所述若干候选存储桶中选取一目标候选存储桶,将目标候选存储桶对应的指纹作为数据成员对应的指纹;
A70、在所述目标候选存储桶内选取一目标指纹,将所述数据成员对应的指纹存储于所述目标指纹对应的存储位置;
A80、根据所述目标指纹以及目标候选存储桶,采用加减法操作确定所述目标指纹对应的各参考指纹以及各参考候选存储桶;若存在具有空闲存储位置的参考存储桶,则执行步骤A90;若未存在具有空闲存储位置的参考存储桶,则执行步骤A100;
A90、将参考指纹存储于该空闲存储位置;
A100、将目标指纹对应的目标候选存储桶以及各参考存储桶作为若干候选存储桶,并继续执行步骤A70,直至存在具有空闲存储位置的参考存储桶或执行次数达到预设次数阈值。
具体地,所述若干指纹以及各指纹对应的候选存储桶的确定过程与上述基于加减法操作确定数据成员对应的若干指纹以及各指纹对应的候选存储桶的过程相同,这里就不在赘述,具体可以参照上述说明。在确定数据元素x对应的候选存储桶的索引h0(x),h1(x),...,hk-1(x)后,可以根据候选存储桶的索引h0(x),h1(x),...,hk-1(x)确定各候选存储桶,并将各候选存储桶记为h0(x),h1(x),...,hk-1(x)。由此,可以检测候选存储桶h0(x),h1(x),...,hk-1(x)是否存在空闲存储位置。其中,所述检测所述候选存储桶h0(x),h1(x),...,hk-1(x)是否存在空闲存储位置的过程可以为:依次搜索候选存储桶h0(x),候选存储桶h1(x),....,候选存储桶hk-1(x),分别搜索候选存储桶h0(x),候选存储桶h1(x),....,候选存储桶hk-1(x)中的各存储位置的存储数值是否为预设数值,若搜索到存储数值为预设数值的存储位置,则将该存储位置判定为空闲存储位置。其中,预设数值表示该存储位置为空闲存储位置,未存储数据成员的指纹,所述预设数值为预先设置的,例如,0等。
进一步,当存在空闲存储位置时,获取各空闲存储位置,并在获取到的所有空闲存储位置中选取一个空闲存储位置,并确定该空闲存储位置对应的候选存储桶,将候选存储桶对应的指纹存储于该空闲存储位置。其中,所述空闲存储位置可以为数据成员x对应的具有空闲存储位置的候选存储桶中任一候选存储桶中的存储位置。例如,数据成员x对应的具有空闲存储位置的候选存储桶分别为h0(x)和h1(x),那么当空闲存储位置为候选存储桶h0(x)中的存储位置时,将第0个指纹存储于候选存储桶h0(x)中的空闲存储位置;当空闲存储位置为候选存储桶h1(x)中的存储位置时,将第1个指纹存储于候选存储桶h1(x)中的空闲存储位置。此外,在将数据成员对应的指纹存储于该空闲存储位置后,完成该数据成员对应的插入操作。
进一步,当未存在空闲存储位置时,在数据成员对应的所有候选存储桶中随机选取一目标候选存储桶(即当前存储桶h),并将该目标候选存储桶对应的指纹作为数据成员对应的指纹。例如,将第0个候选存储桶h0(x)作为目标候选存储桶时,第0个指纹为数据成员对应的指纹(即新指纹f);将第1个候选存储桶h1(x)作为目标候选存储桶时,第1个指纹为数据成员对应的指纹(即新指纹f)。此外,在选取到目标候选存储桶之前,设置数据成员移动次数为0。
进一步,在确定目标候选存储桶后,在目标候选存储桶中随机选取一存储位置,将该存储位置存储的指纹作为目标指纹(即旧指纹g),并将该数据成员对应的指纹存储于所述目标指纹对应的存储位置。此外,在目标候选存储桶中随机选取一存储位置之前,将移动次数自增1,并判断移动次数是否超过预设次数阈值,若移动次数超过预设次数阈值,则判定数据成员插入失败,若移动次数未超过预设次数阈值,则执行在所述若干候选存储桶中选取一目标候选存储桶的步骤。其中,所述预设次数阈值可以根据实际情况确定,例如,预设次数阈值为500等。
在目标候选存储桶中选取到目标指纹后,采用加减法操作确定所述目标指纹对应的各参考指纹以及各参考存储桶。在本实施例的一个实现方式中,所述采用加减法操作确定所述目标指纹对应的各参考指纹以及各参考存储桶的过程可以包括:
获取所述目标指纹的目标选项以及目标余数,采用加减法确定目标选项对应的各参考选项,并根据各参考选项以及目标余数确定各参考指纹;
根据所述目标指纹以及目标候选桶,确定目标指纹对应的目标数据元素的哈希值;
基于所述哈希值以及各参考指纹,确定各参考指纹对应的参考存储桶。
具体地,在确定目标指纹g后,根据数据成员对应的各指纹的计算公式可以确定目标指纹g对应的各参考指纹。假设目标指纹为数据成员e对应的第0个指纹数据成员e的指纹家族中的其余k-1个指纹分别为/> 其中,/>的选项为/>的选项累加i,/>的指纹余数为/>的指纹余数,以得到目标指纹对应的各参考指纹。此外,在确定得到目标指纹对应的各参考指纹后,基于目标指纹g以及目标指纹g对应的目标候选存储桶h后,采用减法操作计算数据成员e的哈希值H(e),其计算公式如下:
H(e)=(h-H(g))mod m (4)
其中,H(g)是目标指纹g的哈希值,其范围为[0,…,m-1],“-”是加法操作,哈希值H(e)的范围为[0,…,m-1]。
进一步,在获取到数据成员e的哈希值H(e)后,可以根据候选存储桶的计算公式,基于各参考指纹和哈希值H(e),采用加法操作计算对应的各参考存储桶h1(e),…,hk-1(e),参考存储桶的计算公式可以为:
其中,哈希值的范围为[0,…,m-1],“+”是加法操作。
进一步,在获取到参考存储桶后,检测是否存在具有空闲存储位置的参考存储桶,若存在具有空闲存储位置的参考存储桶,在所述目标候选存储桶内选取一目标指纹,将所述数据成员对应的指纹存储于所述目标指纹对应的存储位置,以完成所述数据成员的插入操作。此外,当未存在具有空闲存储位置的参考存储桶时,将目标指纹对应的目标候选存储桶以及各参考存储桶作为若干候选存储桶,并继续执行在所述若干候选存储桶中选取一目标候选存储桶的步骤,直至存在具有空闲存储位置的参考存储桶或执行次数达到预设次数阈值。此外,在将目标指纹对应的目标候选存储桶以及各参考存储桶作为若干候选存储桶之前,将所述移动次数自增1,以统计数据成员的插入操作对应的成员移动次数,用于衡量预设成员元素对应的插入操作是否结束,避免插入操作进入死循环。
举例说明加减布谷鸟过滤器的元素插入方法:
示例1:如图4所示,当插入元素x时,采用公式(1)和(2)计算数据成员x的4个指纹,其中,/>以及/>的选项分别为10,11,00,01,指纹余数均为110101。在获取到4个指纹后,采用公式(3)计算数据成员x的4个候选存储桶索引值h0(x),h1(x),h2(x)以及h3(x),其中,h0(x)=1,h1(x)=3,h2(x)=5,h3(x)=8;分别搜索数据成员x的4个候选存储桶h0(x),h1(x),h2(x)以及h3(x),发现存储桶h0(x),h2(x),h3(x)均包含空闲存储位置;最后,随机选择数据成员x的一个空闲位置的候选存储桶(即h0(x)=1),存储对应的指纹/>在该候选存储桶中。
示例2:如图5所示,当插入元素y时,采用公式(1)和(2)计算数据成员x的4个指纹以及/>并采用公式(3)计算数据成员x的4个候选存储桶索引值h0(y),h1(y),h2(y)以及h3(y),其中,h0(y)=1,h1(y)=3,h2(y)=6,h3(y)=9;分别搜索数据成员x的4个候选存储桶h0(y),h1(y),h2(y)以及h3(y),发现存储桶h0(y),h1(y),h2(y)以及h3(y)均未包含空闲存储位置。此时,随机选择数据成员x的一个候选存储桶(即h2(y)=6),存储对应的指纹/>在该候选存储桶中,同时从该存储桶中移除旧指纹/>采用公式(4)和(5)计算旧指纹/>的其他3个参考指纹/> 及对应的3个参考存储桶索引值h3(s),h0(s),h1(s),发现旧指纹/>的候选存储桶h1(s)=8包含空闲存储位置,存储对应的指纹/>在该存储桶中。
在本实施例的一个实现方式中,所述数据成员管理操作为查询操作;如图6所示,所述当基于指纹家族的布谷鸟过滤器接收到数据成员管理操作时,基于加减法操作确定数据成员对应的若干指纹以及各指纹对应的候选存储桶,并基于确定得到的各指纹以及各指纹对应的候选存储桶执行所述数据成员管理操作具体包括:
B10、确定所述数据成员对应的候选指纹及候选哈希值;
B20、基于所述候选指纹,采用加减法操作确定所述数据成员对应到的其余指纹,以得到数据成员对应的若干指纹;
B30、对于若干指纹中的每个指纹,根据该指纹以及所述候选哈希值,确定该指纹对应的候选存储桶,以得到各指纹对应的候选存储桶;
B40、分别各指纹对应的选存储桶中分别查找各指纹;
B50、若查找到所述数据成员对应的指纹,则提示数据成员查询成功;
B60、若未查找到所述数据成员对应的指纹,则提示数据成员查询失败。
具体地,所述步骤B10-步骤B30的执行过程与步骤A10-A30的执行过程相同,这里就不在赘述,具体可以参照步骤A10-A30的说明。
进一步,在获取到各候选存储桶后,搜索各候选存储桶中是否存储各候选存储桶对应的指纹,例如,查找第0个候选存储桶h0(x)中是否存在与该数据成员x的指纹匹配的指纹,查找第1个候选存储桶h1(x)中是否存在与该数据成员x的指纹/>匹配的指纹等。如果存在候选存储桶,该候选存储桶中存储有与该候选存储对应的指纹匹配的指纹(例如,第0个候选存储桶h0(x)中存在与该数据成员x的指纹/>匹配的指纹),表明数据成员元素x在集合中,返回查询结果为真(True),数据成员查询结束;如果未查找到所述数据成员对应的指纹,表明数据成员元素x不在集合中,返回查询结果为假(False),元素查询结束。
举例说明加减布谷鸟过滤器的元素查询方法:
如图7所示,当查询元素u时,首先,采用公式(1)和(2)计算数据成员u的4个指纹以及/>并采用公式(3)计算数据成员u的4个候选存储桶索引值h0(u)=3,h1(u)=0,h2(u)=8以及h3(u)=5,搜索数据成员u的4个候选存储桶h0(u)=3,h1(u)=0,h2(u)=8以及h3(u)=5是否匹配各自对应的指纹/>以及/>发现候选存储桶h3(u)=5存在匹配的指纹/>最后,查询表明元素x在集合中,返回查询结果为真。
在本实施例的一个实现方式中,所述数据成员管理操作为删除操作;如图8所示,所述当布谷鸟过滤器接收到数据成员管理操作时,基于加减法操作确定数据成员对应的若干指纹以及各指纹对应的候选存储桶,并基于确定得到的各指纹以及各指纹对应的候选存储桶执行所述数据成员管理操作具体包括:
C10、确定所述数据成员对应的候选指纹及候选哈希值;
C20、基于所述候选指纹,采用加减法操作确定所述数据成员对应到的其余指纹,以得到数据成员对应的若干指纹;
C30、对于若干指纹中的每个指纹,根据该指纹以及所述候选哈希值,确定该指纹对应的候选存储桶,以得到各指纹对应的候选存储桶;
C40、分别各指纹对应的选存储桶中分别查找各指纹;
C50、若查找到所述数据成员对应的指纹,则删除查找到的数据成员对应的指纹;
C60、若未查找到所述数据成员对应的指纹,则提示数据成员删除失败。
具体地,所述步骤C10-步骤C30的执行过程与步骤A10-A30的执行过程相同,这里就不在赘述,具体可以参照步骤A10-A30的说明。
进一步,在获取到各候选存储桶后,搜索各候选存储桶中是否存储各候选存储桶对应的指纹,例如,查找第0个候选存储桶h0(x)中是否存在与该数据成员x的指纹匹配的指纹,查找第1个候选存储桶h1(x)中是否存在与该数据成员x的指纹/>匹配的指纹等。如果存在候选存储桶,该候选存储桶中存储有与该候选存储对应的指纹匹配的指纹(例如,第0个候选存储桶h0(x)中存在与该数据成员x的指纹/>匹配的指纹),表明数据成员元素x在集合中,随机选择元素x的一个匹配指纹/>从该指纹对应的候选存储桶hi(x)中删除该指纹,元素x删除成功,删除操作结束;如果未查找到所述数据成员对应的指纹,元素x删除失败,删除操作结束。
举例说明加减布谷鸟过滤器的元素删除方法:
如图9所示,当查询元素v时,采用公式(1)和(2)计算数据成员v的4个指纹以及/>并采用公式(3)计算数据成员v的4个候选存储桶索引值h0(v)=6,h1(v)=9,h2(v)=3以及h3(v)=1,搜索数据成员v的4个候选存储桶h0(v)=6,h1(v)=9,h2(v)=3以及h3(v)=1是否匹配各自对应的指纹/> 以及/>由于指纹/>等于指纹/>(即/>),发现指纹/>在存储桶h0(v)=6中且指纹/>在存储桶h1(v)=9中,随机选择指纹/>从存储桶h0(v)=6中删除,并保留指纹/>在存储桶h1(v)=9中。
进一步,基于指纹家族的布谷鸟过滤器的元素删除方法可确保正确删除元素,不会产生假阴性错误。如果两个插入元素的指纹相同,加减布谷鸟过滤器插入该两个元素的两个指纹在过滤器中。如果删除上述两个元素的一个指纹,另一个指纹仍在过滤器中,因此不会产生假阴性错误,可能产生假阳性错误。尽管如此,基于指纹家族的广义布谷鸟过滤器的元素删除方法不会增加假阳性错误率,其假阳性错误率低。
综上所述,本实施例提供了一种基于指纹家族的布谷鸟过滤器,所述基于指纹家族的布谷鸟过滤器包括布谷鸟哈希表,所述布谷鸟哈希表包括若干存储桶,每个数据成员对应若干指纹,若干指纹中的各指纹存储于不同存储桶内;当布谷鸟过滤器接收到数据成员管理操作时,基于加减法操作确定数据成员对应的若干指纹以及各指纹对应的候选存储桶,并基于确定得到的各指纹以及各指纹对应的候选存储桶执行所述数据成员管理操作。本发明通过为各数据成员分配若干指纹和若干候选存储桶,不要求存储桶数必须为2的幂,并可扩展支持哈希函数个数大于或等于2,从而提升存储空间效率以及查询和更新性能。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种基于指纹家族的布谷鸟过滤器,其特征在于,所述布谷鸟过滤器包括布谷鸟哈希表,所述布谷鸟哈希表包括若干存储桶,每个数据成员对应若干指纹,若干指纹中的各指纹存储于不同存储桶内;当布谷鸟过滤器接收到数据成员管理操作时,基于加减法操作确定数据成员对应的若干指纹以及各指纹对应的候选存储桶,并基于确定得到的各指纹以及各指纹对应的候选存储桶执行所述数据成员管理操作;
所述基于加减法操作确定数据成员对应的若干指纹以及各指纹对应的候选存储桶具体包括:
确定所述数据成员对应的候选指纹及候选哈希值,其中,所述候选指纹和候选哈希值的计算公式为:
H(x):
其中,为数据成员的候选指纹,H(x)为候选哈希值,x为数据成员,G(x)为数据成员x对应的哈希值,所述哈希值中的低位数值为/>高位数值为H(x),“:”为数值连接符;
基于所述候选指纹,采用加减法操作确定所述数据成员对应到的其余指纹,以得到数据成员对应的若干指纹,其中,数据成员对应的指纹家族包括k个指纹,分别记为以及k个候选存储桶,分别记为h0(x),h1(x),...,hk-1(x),数据元素x对应的k个指纹的计算公式为:
其中,表示第i个指纹的选项,i的范围为[0,...,k-1],rx表示指纹余数,“:”是数值连接符;
对于若干指纹中的每个指纹,根据该指纹以及所述候选哈希值,确定该指纹对应的候选存储桶,以得到各指纹对应的候选存储桶,其中,各指纹对应的候选存储桶的计算公式为:
其中,H(x)为候选哈希值,为第i个指纹的哈希值,并且/>的范围为[0,...,m-1],“+”是加法操作;数据成员x的k个候选存储桶索引值h0(x),h1(x),...,hk-1(x)的范围为[0,...,m-1],m为基于指纹家族的布谷鸟过滤器的存储桶的数量,i的范围为[0,...,k-1]。
2.根据权利要求1所述基于指纹家族的布谷鸟过滤器,其特征在于,所述指纹均包括选项以及余数,数据成员对应的若干指纹中的各指纹的余数相同且选项互不相同。
3.根据权利要求1所述基于指纹家族的布谷鸟过滤器,其特征在于,所述数据成员管理操作包括插入操作、查询操作以及删除操作中的一种或多种。
4.根据权利要求1所述基于指纹家族的布谷鸟过滤器,其特征在于,所述数据成员对应的若干指纹的数量大于或者等于2。
5.根据权利要求1-4任一所述基于指纹家族的布谷鸟过滤器,其特征在于,当所述数据成功管理操作为插入操作时,所述基于确定得到的各指纹以及各指纹对应的候选存储桶执行所述数据成员管理操作具体包括:
检测所述各候选存储桶是否存在空闲存储位置;
若存在空闲存储位置,则将数据成员的候选指纹存储于该空闲存储位置,其中,所述候选指纹为该空闲存储位置所属候选存储桶对应的指纹。
6.根据权利要求5所述基于指纹家族的布谷鸟过滤器,其特征在于,当所述数据成员管理操作为插入操作时,所述基于确定得到的各指纹以及各指纹对应的候选存储桶执行所述数据成员管理操作包括:
若未存在空闲存储位置,则在所述若干候选存储桶中选取一目标候选存储桶,将目标候选存储桶对应的指纹作为数据成员对应的指纹;
在所述目标候选存储桶内选取一目标指纹,将所述数据成员对应的指纹存储于所述目标指纹对应的存储位置;
根据所述目标指纹以及目标候选存储桶,采用加减法操作确定所述目标指纹对应的各参考指纹以及各参考候选存储桶;
若存在具有空闲存储位置的参考存储桶,则将参考指纹存储于该空闲存储位置;
若未存在具有空闲存储位置的参考存储桶,将目标指纹对应的目标候选存储桶以及各参考存储桶作为若干候选存储桶,并继续执行在所述若干候选存储桶中选取一目标候选存储桶的步骤,直至存在具有空闲存储位置的参考存储桶或执行次数达到预设次数阈值。
7.根据权利要求6所述基于指纹家族的布谷鸟过滤器,其特征在于,所述根据所述目标指纹以及目标候选存储桶,采用加减法操作确定所述目标指纹对应的各参考指纹以及各参考候选存储桶具体包括:
获取所述目标指纹的目标选项以及目标余数,采用加减法确定目标选项对应的各参考选项,并根据各参考选项以及目标余数确定各参考指纹;
根据所述目标指纹以及目标候选存储桶,确定目标指纹对应的目标数据元素的哈希值;
基于所述哈希值以及各参考指纹,确定各参考指纹对应的参考存储桶。
8.根据权利要求1-4任一所述基于指纹家族的布谷鸟过滤器,其特征在于,当所述数据成员管理操作为查询操作或删除操作时,所述基于确定得到的各指纹以及各指纹对应的候选存储桶执行所述数据成员管理操作具体包括:
分别各指纹对应的选存储桶中分别查找各指纹;
若查找到所述数据成员对应的指纹,则对该指纹执行该数据成员管理操作;
若未查找到所述数据成员对应的指纹,则提示数据成员管理操作失败。
9.根据权利要求8所述基于指纹家族的布谷鸟过滤器,其特征在于,所述对该指纹执行该数据成员管理操作具体包括:
当数据成员管理操作为查询操作时,则提示数据成员查询成功;
当数据成员管理操作为删除操作时,则删除查找到的所述数据成员对应的指纹。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010983776.5A CN112148928B (zh) | 2020-09-18 | 2020-09-18 | 一种基于指纹家族的布谷鸟过滤器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010983776.5A CN112148928B (zh) | 2020-09-18 | 2020-09-18 | 一种基于指纹家族的布谷鸟过滤器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112148928A CN112148928A (zh) | 2020-12-29 |
CN112148928B true CN112148928B (zh) | 2024-02-20 |
Family
ID=73893135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010983776.5A Active CN112148928B (zh) | 2020-09-18 | 2020-09-18 | 一种基于指纹家族的布谷鸟过滤器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112148928B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535706B (zh) * | 2021-08-03 | 2023-05-23 | 佛山赛思禅科技有限公司 | 两阶段布谷鸟过滤器及基于两阶段布谷鸟过滤器的重复数据删除方法 |
CN113360516B (zh) * | 2021-08-11 | 2021-11-26 | 成都信息工程大学 | 集合成员管理方法 |
US11416499B1 (en) * | 2021-10-12 | 2022-08-16 | National University Of Defense Technology | Vertical cuckoo filters |
CN114021113B (zh) * | 2021-11-02 | 2024-08-27 | 北京天融信网络安全技术有限公司 | 一种威胁检测方法及装置、存储介质 |
CN114706834B (zh) * | 2022-03-18 | 2024-08-02 | 中国人民解放军国防科技大学 | 一种高效率的动态集合管理方法和系统 |
CN114844638B (zh) * | 2022-07-03 | 2022-09-20 | 浙江九州量子信息技术股份有限公司 | 一种基于布谷鸟过滤器的大数据量密钥的去重方法及系统 |
CN115048402B (zh) * | 2022-08-16 | 2022-11-18 | 成都信息工程大学 | 带时效的自适应动态数据集合成员插入、删除及检索方法 |
CN116467307B (zh) * | 2023-03-29 | 2024-02-23 | 济南大学 | 一种用于降低假阳率的布谷鸟过滤器设计方法及系统 |
CN116701440B (zh) * | 2023-06-15 | 2024-04-16 | 泉城省实验室 | 一种布谷鸟过滤器及数据插入、查询、删除方法 |
CN117891858B (zh) * | 2024-03-14 | 2024-07-05 | 苏州大学 | 一种时空高效的并行近似成员查询方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630955A (zh) * | 2015-12-24 | 2016-06-01 | 华中科技大学 | 一种高效动态的数据集合成员管理方法 |
CN106201771A (zh) * | 2015-05-06 | 2016-12-07 | 阿里巴巴集团控股有限公司 | 数据存储系统和数据读写方法 |
CN110222088A (zh) * | 2019-05-20 | 2019-09-10 | 华中科技大学 | 基于插入位置选择的数据近似集合表示方法及系统 |
CN111552693A (zh) * | 2020-04-30 | 2020-08-18 | 南方科技大学 | 一种标签布谷鸟过滤器 |
CN111552692A (zh) * | 2020-04-30 | 2020-08-18 | 南方科技大学 | 一种加减法布谷鸟过滤器 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10222987B2 (en) * | 2016-02-11 | 2019-03-05 | Dell Products L.P. | Data deduplication with augmented cuckoo filters |
US11010300B2 (en) * | 2017-05-04 | 2021-05-18 | Hewlett Packard Enterprise Development Lp | Optimized record lookups |
US11762828B2 (en) * | 2018-02-27 | 2023-09-19 | Advanced Micro Devices, Inc. | Cuckoo filters and cuckoo hash tables with biasing, compression, and decoupled logical sparsity |
-
2020
- 2020-09-18 CN CN202010983776.5A patent/CN112148928B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201771A (zh) * | 2015-05-06 | 2016-12-07 | 阿里巴巴集团控股有限公司 | 数据存储系统和数据读写方法 |
CN105630955A (zh) * | 2015-12-24 | 2016-06-01 | 华中科技大学 | 一种高效动态的数据集合成员管理方法 |
CN110222088A (zh) * | 2019-05-20 | 2019-09-10 | 华中科技大学 | 基于插入位置选择的数据近似集合表示方法及系统 |
CN111552693A (zh) * | 2020-04-30 | 2020-08-18 | 南方科技大学 | 一种标签布谷鸟过滤器 |
CN111552692A (zh) * | 2020-04-30 | 2020-08-18 | 南方科技大学 | 一种加减法布谷鸟过滤器 |
Also Published As
Publication number | Publication date |
---|---|
CN112148928A (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112148928B (zh) | 一种基于指纹家族的布谷鸟过滤器 | |
CN111552692B (zh) | 一种加减法布谷鸟过滤器 | |
CN111552693B (zh) | 一种标签布谷鸟过滤器 | |
KR101467589B1 (ko) | 데이터 구조를 가지는 하나 이상의 장치 판독가능 매체, 및장치 실행가능 명령어를 구비한 하나 이상의 장치 판독가능 매체 | |
US10222987B2 (en) | Data deduplication with augmented cuckoo filters | |
KR100856245B1 (ko) | 파일 시스템 장치 및 그 파일 시스템의 파일 저장 및 파일 탐색 방법 | |
CN113961514B (zh) | 数据查询方法及装置 | |
WO2010135082A1 (en) | Localized weak bit assignment | |
CN105468642A (zh) | 数据的存储方法及装置 | |
WO2022241813A1 (zh) | 一种基于图压缩的图数据库构建方法、装置及相关组件 | |
CN111475105B (zh) | 监控数据存储方法、设备、服务器及存储介质 | |
KR20150042293A (ko) | 개별 액세스 가능한 데이터 유닛의 스토리지 관리 | |
CN108874987B (zh) | 表项管理方法、装置及交换芯片 | |
US20050187898A1 (en) | Data Lookup architecture | |
CN109189759B (zh) | Kv存储系统中的数据读取方法、数据查询方法、装置及设备 | |
CN111858607B (zh) | 数据处理方法、装置、电子设备和计算机可读介质 | |
CN116450656A (zh) | 数据处理方法、装置、设备及存储介质 | |
JP5731015B2 (ja) | データベースシステム及びデータベース管理方法 | |
CN116701440A (zh) | 一种布谷鸟过滤器及数据插入、查询、删除方法 | |
CN112632337B (zh) | 一种应用于烟花过滤器的元素管理方法及烟花过滤器 | |
CN114416741A (zh) | 基于多级索引的kv数据写入读取方法、装置及存储介质 | |
KR101666758B1 (ko) | 개선된 블룸 필터를 이용하는 데이터 검색 방법 | |
CN112131226A (zh) | 索引获得方法、数据查询方法、及相关装置 | |
US11409747B2 (en) | Combined filtering and indexing for read-only data sets | |
CN118132513A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |