CN116126928A - 一种基于可变指纹布谷鸟过滤器的信息查找*** - Google Patents
一种基于可变指纹布谷鸟过滤器的信息查找*** Download PDFInfo
- Publication number
- CN116126928A CN116126928A CN202111334205.XA CN202111334205A CN116126928A CN 116126928 A CN116126928 A CN 116126928A CN 202111334205 A CN202111334205 A CN 202111334205A CN 116126928 A CN116126928 A CN 116126928A
- Authority
- CN
- China
- Prior art keywords
- information
- fingerprint
- fingerprints
- storage barrel
- searching
- 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
- 241000544061 Cuculus canorus Species 0.000 title claims abstract description 52
- 230000006870 function Effects 0.000 claims abstract description 50
- 238000000034 method Methods 0.000 claims description 24
- 238000003780 insertion Methods 0.000 claims description 13
- 230000037431 insertion Effects 0.000 claims description 13
- 238000012217 deletion Methods 0.000 claims description 8
- 230000037430 deletion Effects 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 8
- 230000006872 improvement Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- 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
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Fuzzy Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及信息查找技术领域,尤其涉及一种基于可变指纹布谷鸟过滤器信息查找***,所述***包括网络用户和若干个服务节点,其中具有相同功能并且网络距离在一跳范围的服务节点之间互为邻居节点,根据网络用户的要求,基于每个服务节点所部署的可变指纹布谷鸟过滤器提供数据信息查找功能;所述可变指纹布谷鸟过滤器包括若干个占用相同内存空间的存储桶,每个存储桶存储若干个数据信息的指纹,所述指纹根据所在的网络服务节点的负载动态调整长度。***中服务节点采用上述技术方案进行信息查找,可以提高内存利用率,实现信息的快速查找,并提高检索的准确率。
Description
技术领域
本发明涉及信息查找技术领域,尤其涉及一种基于可变指纹布谷鸟过滤器的信息查找***。
背景技术
随着互联网应用对网络的要求越来越高,传统的以端到端传输为设计原则的TCP/IP互联网体系结构已经难以适应未来网络的发展趋势,特别是难以满足移动接入、物联网、分布式信息处理、海量流媒体等新应用的发展需求。为了解决体系结构和应用需求之间的矛盾,研究人员提出了以信息/内容为中心构建网络体系架构的信息中心网络,将信息名字与网络位置解耦,以内容的高效分发和获取为目标,增强网络的可扩展性、移动性、安全性和动态性等性能,实现网络的信息互联。
由于单台服务器不足以存储全部数据内容,且从单台服务器查询速度较慢,所以采用分布式多节点架构对全部数据进行分片存储,按照负载量存储到多台服务器上,查询时并行查询,提高效率。这就需要维护分片的位置信息,以及维护多节点之间的通信。由于每个节点都存储了很多信息,造成了信息的数量巨大,而且信息类型多样,结构复杂,且长度没有限制。因此,在海量的集合中快速、准确查找信息并且拥有较低的内存占有量成为信息查找方法的关键。
在网络节点中常用的信息查找方法有以下几种:
基于哈希表的信息查找方法。首先将信息通过哈希函数进行计算,得到一个关键值,然后将所有的关键值存储到哈希表中,通过查找表中的关键值位置来获得请求内容。虽然查询速度快、准确度高但需要占用大量的内存。
基于布隆过滤器的信息查找方法。布隆过滤器本质上由一个位图组成,采用m个比特来表示一个集合的n个成员,将每个***的成员采用k个哈希函数映射到位图的k个比特,该k个比特被设置为1。因此它是一种空间高效的随机化数据结构。通过多个哈希函数将待查信息映射到相应的比特位进行匹配,保证了高效的查询速度。但不同信息可能映射到相同的比特位,这将导致假阳性错误,而且它无法统计不同哈希键的数目,因此也不支持移除现有的成员。
基于计数布隆过滤器的信息查找方法。计数布隆过滤器这一查找结构与布隆过滤器类似,但采用m个计数器来表示一个集合的n个元素以支持删除,因此它的空间开销很高,通常是布隆过滤器的4倍以上。
基于布谷鸟过滤器的信息查找方法。将信息通过哈希函数算出的信息指纹存放在布谷鸟过滤器中,而非直接存储信息本身,节省了大量的空间。查询时通过哈希函数算出待查信息可能所在的存储桶位置,并在存储桶中查找指纹保证了O(1)的查找速度。不同的信息有同样的指纹时可能出现误报,误报率与指纹的长度f有关。但由于存储状态存在动态的变化,布谷鸟过滤器通常会需要25%的额外内存,最坏情况下可能50%内存处于空置状态。
发明内容
针对现有技术信息查找方法存在的问题,本发明的目的在于克服上述现有技术缺陷,提出了一种基于可变指纹布谷鸟过滤器的信息查找***。
为了实现上述目的,本发明提出了一种基于可变指纹布谷鸟过滤器的信息查找***,所述***包括网络用户和若干个服务节点,具有相同功能并且网络距离在一跳范围的服务节点之间互为邻居节点,
根据网络用户的要求,基于每个服务节点所部署的可变指纹布谷鸟过滤器提供数据信息查找功能;所述可变指纹布谷鸟过滤器包括若干个占用相同内存空间的存储桶,每个存储桶存储若干个数据信息的指纹,所述指纹根据所在的网络服务节点的负载动态调整长度。
作为上述***的一种改进,每个所述信息存储在某个服务节点的可变指纹布谷鸟过滤器的候选存储桶中,所述候选存储桶数量不少于两个,第一个候选存储桶的编号通过一个哈希函数对信息计算得到,其他候选存储桶的编号通过信息或信息的指纹与第一个候选桶的编号进行异或计算得到。
作为上述***的一种改进,所述存储桶的结构具体包括:标志字段和指纹字段;其中,
所述标志字段,包括第一标志位和第二标志位,第一标志位,用于标识存储桶内当前实际存储的指纹数量n,n不超过预设的存储上限N;第二标志位,采用二进制编码表示,用于标识指纹字段中n个指纹分别对应的指纹类型,指纹类型与指纹生成时使用的哈希函数一一对应;
所述指纹字段,用于存储n个指纹,当指纹数量n从1到N动态变化时,存储的指纹长度相应改变并总是完全占满指纹字段的存储空间。
作为上述***的一种改进,所述指纹为将信息经哈希函数计算后得到的信息摘要,为字符串形式,指纹长度取决于所用哈希函数,采用不同的哈希函数得到不同类型的指纹。
作为上述***的一种改进,所述候选存储桶编号生成所使用的哈希函数与指纹生成所使用的哈希函数互相独立。
作为上述***的一种改进,所述服务节点包括信息查找模块、信息***模块和信息删除模块;其中,
所述信息查找模块,用于根据网络用户的查找要求,从本服务节点或其他服务节点中查找到数据信息对应的指纹;
所述信息***模块,用于将待增加的数据信息,生成指纹并***到对应的存储桶中,并修改该存储桶的标志字段;
所述信息删除模块,用于根据待删除的数据信息,找寻到对应的存储桶,删除对应的指纹,并修改该存储桶的标志字段。
作为上述***的一种改进,所述信息查找模块的具体处理过程包括:
步骤A1)根据待查找信息在本地服务节点的可变指纹布谷鸟过滤器中查找,如果找到,转步骤A4),如果未找到,查找次数加1,并且判断查找次数未超过阈值,转至步骤A2);如果未找到并且查找次数超过阈值,转步骤A3);
步骤A2)在本地服务节点预先建立的信息与邻居节点匹配关系中查找是否有邻居节点具有该待查找信息,判断为是,将该邻居节点设为新的服务节点,并转至步骤A1);否则,转至步骤A3);
步骤A3)由远距离服务节点协同查找,直到获得查找结果,转步骤A4);
步骤A4)输出查找结果。
作为上述***的一种改进,所述步骤A1)的根据待查找信息在本地服务节点的可变指纹布谷鸟过滤器中查找;具体包括:
根据待查找信息,基于多个不同的哈希函数确定待查找信息对应的候选存储桶以及待查找信息对应的若干类型指纹;
读取候选存储桶中的标志字段,获得该存储桶中存放的指纹数量、指纹长度和类型信息;
将待查找信息的若干类型指纹分别与候选存储桶中的指纹进行比对,如果存在一致的指纹,则待查找信息被查找到;否则,未找到待查找信息。
作为上述***的一种改进,所述信息***模块的具体处理过程包括:
步骤B1)对于待***信息,计算确定每个候选存储桶的编号,并计算待***信息对应的若干类型指纹;
步骤B2)依次读取每个候选存储桶中标志字段的第一标志位n,判断n是否等于N,如果每个候选存储的n均等于N,转至步骤B4);否则,转至步骤B3);
步骤B3)将信息指纹***到任意一个n小于N的候选存储桶的指纹字段中,将该候选存储桶的第一标志位改为n+1,相应修改该候选存储桶原存储指纹的类型以完全占满指纹字段存储空间,并修改第二标志位对应存储桶当前n+1个指纹的指纹类型,***成功;
步骤B4)任意选择一个候选存储桶,从中随机选择一个指纹记作受害者,用待***信息的指纹进行替换,执行次数加1;
步骤B5)将受害者作为新的待***信息,转至步骤B1);
步骤B6)当没有受害者或执行次数达到预设的阈值,退出信息***模块。
作为上述***的一种改进,所述信息删除模块的具体处理过程包括:
步骤C1)对于待删除信息,基于多个不同的哈希函数确定信息对应的候选存储桶以及待删除信息对应的若干类型指纹;
步骤C2)读取候选存储桶中的标志字段,确定该存储桶中存放的指纹数量、指纹长度和类型信息;
步骤C3)将待删除信息的指纹分别与每个候选存储桶中的指纹进行比对,如果存在一致的指纹,则删除,如果候选存储桶中仍存储有其他信息的指纹,则修改候选存储桶中剩余指纹的长度和类型,并填满指纹字段,修改标志字段,删除成功,退出删除模块;
步骤C4)如果所需删除的信息指纹与所有候选存储桶中的指纹都不匹配,则该待删除信息不存在,退出删除模块。
与现有技术相比,本发明的优势在于:
1、本发明设计的可变指纹布谷鸟过滤器这一结构,在信息查找时能够根据存储负载情况灵活修改信息的指纹;
2、在信息查询服务节点采用本发明的技术方案,可以高效利用内存资源,实现信息的快速查找,并提高检索的准确率;
3、本发明的***有效解决了信息查找方法假阳性率高、内存效率低的问题。
附图说明
图1是本发明具体实施例中一个分布式***内用户U向服务节点S查找信息x的网络处理示意图;
图2为本发明具体实施例中可变指纹布谷鸟过滤器的结构示意图;
图3为本发明具体实施例中一个分布式***内的信息查找流程图。
具体实施方式
本发明公开了一种基于可变指纹布谷鸟过滤器的信息查找***。***包括网络用户和若干个服务节点,具有相同功能并且网络距离在一跳(one hop)范围的服务节点之间互为邻居节点,可以理解为相同功能并且通过底层物理网络直连的服务节点之间的距离为一跳。服务节点是一种网络设备,具体功能包括:
(1)能够存储并维护数据信息;
(2)能够存储并维护信息与邻居节点的匹配关系;
(3)能够提供信息的新增、删除和查找功能;
(4)能够按事先约定的方法维护特定的一部分信息,其中,所述事先约定的方法包括但不限于:查表和函数映射。
邻居节点是与当前服务节点具有相同功能且属于同一网络的网络节点,当前服务节点定期向其一跳范围内的所有网络节点发送广播消息,进行应答并建立连接的节点即成为当前节点的邻居;远距离服务节点为在当前服务节点一跳范围之外的服务节点,且能保证与当前服务节点的互相连通。
根据网络用户的要求,基于每个服务节点所部署的可变指纹布谷鸟过滤器提供数据信息查找功能;所述可变指纹布谷鸟过滤器包括若干个占用相同内存空间的存储桶,每个存储桶存储若干个数据信息的指纹,所述指纹根据所在的网络服务节点的负载动态调整长度。当可变指纹布谷鸟过滤器负载改变时,存储的信息指纹会动态改变长度以填满所在的存储桶,负载越低使用的平均指纹长度越长,更长的指纹中携带的信息摘要更多,从而能降低信息查找的误报率。
服务节点包括信息查找模块、信息***模块和信息删除模块。
基于可变指纹布谷鸟过滤器的信息查找***,涉及到多个互相协作的服务节点,查找过程分三个阶段,第一阶段:在单个服务节点本地直接进行信息查找;第二阶段:本地查找失败后,节点查找邻近节点中能够成功查找该信息的邻居,作为新的服务节点重新进入第一阶段查找;第三阶段:当第二阶段无法找到邻居或上述两个阶段的查找次数超过一定阈值时,允许远距离服务节点协同查找直到最终获得查找结果。其中,
第一阶段中,在服务节点内部通过存储了本地信息摘要的可变指纹布谷鸟过滤器进行本地信息查找;
第二阶段中,在服务节点内部通过存储了信息与邻居节点匹配关系的可变指纹布谷鸟过滤器查找邻居服务节点。
可变指纹布谷鸟过滤器是支持信息***、查找和删除的一种指纹可改变的新型布谷鸟过滤器,包括由若干存储桶构成,其中存储的元素是若干信息的指纹;所述的可变指纹布谷鸟过滤器能快速准确地查找一个给定信息是否存在于信息集合中,在查询时,首先通过哈希函数得到待查信息对应的候选存储桶,访问存储桶的标志字段能够快速确定存储的指纹数目和类型。信息再次经多个哈希计算得到多种类型的指纹,如果与候选存储桶中的指纹相匹配则查找成功,否则查找失败。
信息查找的过程如下:
步骤A1:给定一个用于查询的信息,基于多个不同的哈希函数确定信息对应的候选存储桶以及信息对应的若干类型指纹;
步骤A2:读取候选存储桶中的标志字段,确定该存储桶中存放的指纹数量、指纹长度和类型等信息;
步骤A3:将所需查询的信息的指纹与候选存储桶中的指纹进行一一比对,如果存在一致的指纹则这个信息被查找到;
步骤A4:如果所需查询的信息指纹与所有候选存储桶中的指纹都不匹配,那么这个信息无法被查找到。
哈希函数是一种能将任意长度的输入消息压缩到某一固定长度的输出消息摘要的函数,不同的哈希函数能将相同的输入消息压缩成长度等长或不等长的不同输出摘要,所述哈希函数包括但不限于MurmurHash、BobHash、SuperFastHash、MD5Hash和SHA1Hash等。
候选存储桶是存储或可能存储给定信息的指纹的存储桶,每个信息对应的候选存储桶数量不少于两个,第一个候选存储桶的编号通过一个哈希函数对信息进行计算得到,使用的哈希函数与计算指纹使用的哈希函数互相独立;其他的候选存储桶的编号计算方法包括但不限于使用信息本身或信息的某一类型的指纹与第一个候选桶的编号进行异或计算。
信息***的具体过程包括:
步骤B1:对于要***的信息,基于多个不同的哈希函数确定信息对应的候选存储桶以及信息对应的若干类型指纹;
步骤B2:读取候选存储桶中的标志字段,检查各候选存储桶是否都到达存储指纹数量的上限,如果都达到上限,执行步骤B4;否则,执行步骤B3;
步骤B3:将信息指纹***到任意一个n小于N的候选存储桶的指纹字段中,将该候选存储桶的第一标志位改为n+1,相应修改该候选存储桶原存储指纹的类型以完全占满指纹字段存储空间,并修改第二标志位对应存储桶当前n+1个指纹的指纹类型,***成功;
步骤B4:任意选择一个候选存储桶,从中随机选择一个指纹记作受害者,使用待***信息对应的相同类型的指纹与其替换;
步骤B5:将受害者作为新的待***的信息,执行步骤B1直至没有受害者或执行次数达到预设的阈值。
信息删除的具体过程包括:
步骤C1:对于要删除的信息,基于多个不同的哈希函数确定信息对应的候选存储桶以及信息对应的若干类型指纹;
步骤C2:读取候选存储桶中的标志字段,确定该存储桶中存放的指纹数量、指纹长度和类型等信息;
步骤C3:将所需删除的信息的指纹与候选存储桶中的指纹进行一一比对,如果存在一致的指纹则删除其中的一个,如果候选存储桶中仍存储了指纹,则修改候选存储桶中剩余指纹的长度和类型以填满指纹字段,并相应修改标志字段,删除成功;
步骤C4:如果所需删除的信息指纹与所有候选存储桶中的指纹都不匹配,那么这个信息不存在,不需要进行删除操作。
服务节点完成信息***或删除操作后,需要向邻居节点发送通知,完成信息更新的同步。
下面结合附图和实施例对本发明的技术方案进行详细的说明。
实施例1
图1为本发明的网络处理示意图,以ICN网络中,网络用户U向服务节点S请求查找名字为例描述具体实施方式。所述实施例中,用名字x表示用户U要查找的信息,包括以下步骤:
A101:用户U向服务节点S发送一个请求,请求查找x这一名字;
A102:服务节点S收到用户U发来的请求包后,在本地开始查找x这一名字,通过节点S本地的可变指纹布谷鸟过滤器查找后没有发现名字x;
A103:开始查询本地邻近节点中是否有能查找该信息的邻居,查询邻居S1对应的可变指纹布谷鸟过滤器没有找到名字x;查询邻居S2对应的可变指纹布谷鸟过滤器找到了名字x;服务节点S得知邻居S2能够处理查询名字x的请求;
A104:服务节点S此时将请求转发至查到的邻居S2;
A105:邻居S2在本地开始查找x这一名字,通过可变指纹布谷鸟过滤器查找后发现本地确实存在名字x;
A106:从S2本地缓存中获取x对应的地址IP1,将其封装到响应包;
A107:邻居S2向用户U发送包含查到结果IP1的响应包,查询结束。
下面对本实施例中采用可变指纹布谷鸟过滤器进行查询的流程进行详细说明。
图2所示的是可变指纹布谷鸟过滤器的结构,在本实施例的一个实现方式中,可变指纹布谷鸟过滤器包括编号从1到m共m个存储桶,每个存储桶最多存储4个长度为f的指纹。可变指纹布谷鸟过滤器允许采用4个哈希函数将同一名字计算为不同长度和类型的指纹共4种。以x为例,它经过4个哈希函数h0(x),h1(x),...,h3(x)运算后,得到4个相互独立的指纹f0(x),...,f3(x),这4种指纹的长度分别为f,f,2f和4f。同时经过一个哈希函数hp(x)运算得到第一个候选存储桶的位置p1(x),第二个候选存储桶的位置使用第一个候选存储桶的位置与名字x进行异或计算p2(x)=p1(x)XOR x。
图3为分布式***内的信息查找流程图,在本实施例的一个实现方式中,所述可变指纹布谷鸟过滤器用于查找名字x时的查询过程如下:
B101:经过哈希函数hp(x)运算得到第一个候选存储桶的位置p1(x)=2,使用第一个候选存储桶的位置p1(x)与名字x进行异或计算得到第二个候选存储桶的位置p2(x)=m;
B102:计算名字x对应的四个指纹f0(x),f1(x),f2(x),f3(x);
B103:读取第一个候选存储桶中的标志字段,存储指纹数目的标志是3,代表这个桶中存储了三个指纹;存储指纹类型的标志是210,代表存的三个指纹类型分别是f2、f1和f0;
B104:依次读出第一个存储桶内的三个指纹f2(k)、f1(j)、f0(n);
B105:将x相应类型的指纹与读出的指纹对比,结果f2(x)≠f2(k),f1(x)≠f1(j),f0(x)≠f0(n),因此在第一个存储桶内查找x失败;
B106:读取第二个候选存储桶中的标志字段,存储指纹数目的标志是4,代表这个桶中存储了四个指纹;存储指纹类型的标志是0000,代表四个指纹类型都是f0;
B107:依次读出第二个存储桶内的四个指纹f0(w)、f0(z)、f0(y)、f0(x);
B108:将x相应类型的指纹与读出的指纹对比,发现f0(x)=f0(x),因此在第二个存储桶内查找x成功;
B109:在两个候选存储桶内发现了与x相匹配的指纹,因此查询成功。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (10)
1.一种基于可变指纹布谷鸟过滤器的信息查找***,所述***包括网络用户和若干个服务节点,其中具有相同功能并且网络距离在一跳范围的服务节点之间互为邻居节点,其特征在于,
根据网络用户的要求,基于每个服务节点所部署的可变指纹布谷鸟过滤器提供数据信息查找功能;所述可变指纹布谷鸟过滤器包括若干个占用相同内存空间的存储桶,每个存储桶存储若干个数据信息的指纹,所述指纹根据所在的网络服务节点的负载动态调整长度。
2.根据权利要求1所述的基于可变指纹布谷鸟过滤器的信息查找***,其特征在于,每个所述信息存储在某个服务节点的可变指纹布谷鸟过滤器的候选存储桶中,所述候选存储桶数量不少于两个,第一个候选存储桶的编号通过一个哈希函数对信息计算得到,其他候选存储桶的编号通过信息或信息的指纹与第一个候选桶的编号进行异或计算得到。
3.根据权利要求1所述的基于可变指纹布谷鸟过滤器的信息查找***,其特征在于,所述存储桶的结构具体包括:标志字段和指纹字段;其中,
所述标志字段,包括第一标志位和第二标志位,第一标志位,用于标识存储桶内当前实际存储的指纹数量n,n不超过预设的存储上限N;第二标志位,采用二进制编码表示,用于标识指纹字段中n个指纹分别对应的指纹类型,指纹类型与指纹生成时使用的哈希函数一一对应;
所述指纹字段,用于存储n个指纹,当指纹数量n从1到N动态变化时,存储的指纹长度相应改变并总是完全占满指纹字段的存储空间。
4.根据权利要求3所述的基于可变指纹布谷鸟过滤器的信息查找***,其特征在于,所述指纹为将信息经哈希函数计算后得到的信息摘要,为字符串形式,指纹长度取决于所用哈希函数,采用不同的哈希函数得到不同类型的指纹。
5.根据权利要求4所述的基于可变指纹布谷鸟过滤器的信息查找***,其特征在于,所述候选存储桶编号生成所使用的哈希函数与指纹生成所使用的哈希函数互相独立。
6.根据权利要求5所述的基于可变指纹布谷鸟过滤器的信息查找***,其特征在于,所述服务节点包括信息查找模块、信息***模块和信息删除模块;其中,
所述信息查找模块,用于根据网络用户的查找要求,从本服务节点或其他服务节点中查找到数据信息对应的指纹;
所述信息***模块,用于将待增加的数据信息,生成指纹并***到对应的存储桶中,并修改该存储桶的标志字段;
所述信息删除模块,用于根据待删除的数据信息,找寻到对应的存储桶,删除对应的指纹,并修改该存储桶的标志字段。
7.根据权利要求6所述的基于可变指纹布谷鸟过滤器的信息查找***,其特征在于,所述信息查找模块的具体处理过程包括:
步骤A1)根据待查找信息在本地服务节点的可变指纹布谷鸟过滤器中查找,如果找到,转步骤A4),如果未找到,查找次数加1,并且判断查找次数未超过阈值,转至步骤A2);如果未找到并且查找次数超过阈值,转步骤A3);
步骤A2)在本地服务节点预先建立的信息与邻居节点匹配关系中查找是否有邻居节点具有该待查找信息,判断为是,将该邻居节点设为新的服务节点,并转至步骤A1);否则,转至步骤A3);
步骤A3)由远距离服务节点协同查找,直到获得查找结果,转步骤A4);
步骤A4)输出查找结果。
8.根据权利要求7所述的基于可变指纹布谷鸟过滤器的信息查找***,其特征在于,所述步骤A1)的根据待查找信息在本地服务节点的可变指纹布谷鸟过滤器中查找;具体包括:
根据待查找信息,基于多个不同的哈希函数确定待查找信息对应的候选存储桶以及待查找信息对应的若干类型指纹;
读取候选存储桶中的标志字段,获得该存储桶中存放的指纹数量、指纹长度和类型信息;
将待查找信息的若干类型指纹分别与候选存储桶中的指纹进行比对,如果存在一致的指纹,则待查找信息被查找到;否则,未找到待查找信息。
9.根据权利要求6所述的基于可变指纹布谷鸟过滤器的信息查找***,其特征在于,所述信息***模块的具体处理过程包括:
步骤B1)对于待***信息,计算确定每个候选存储桶的编号,并计算待***信息对应的若干类型指纹;
步骤B2)依次读取每个候选存储桶中标志字段的第一标志位n,判断n是否等于N,如果每个候选存储的n均等于N,转至步骤B4);否则,转至步骤B3);
步骤B3)将信息指纹***到任意一个n小于N的候选存储桶的指纹字段中,将该候选存储桶的第一标志位改为n+1,相应修改该候选存储桶原存储指纹的类型以完全占满指纹字段存储空间,并修改第二标志位对应存储桶当前n+1个指纹的指纹类型,***成功;
步骤B4)任意选择一个候选存储桶,从中随机选择一个指纹记作受害者,用待***信息的指纹进行替换,执行次数加1;
步骤B5)将受害者作为新的待***信息,转至步骤B1);
步骤B6)当没有受害者或执行次数达到预设的阈值,退出信息***模块。
10.根据权利要求6所述的基于可变指纹布谷鸟过滤器的信息查找***,其特征在于,所述信息删除模块的具体处理过程包括:
步骤C1)对于待删除信息,基于多个不同的哈希函数确定信息对应的候选存储桶以及待删除信息对应的若干类型指纹;
步骤C2)读取候选存储桶中的标志字段,确定该存储桶中存放的指纹数量、指纹长度和类型信息;
步骤C3)将待删除信息的指纹分别与每个候选存储桶中的指纹进行比对,如果存在一致的指纹,则删除,如果候选存储桶中仍存储有其他信息的指纹,则修改候选存储桶中剩余指纹的长度和类型,并填满指纹字段,修改标志字段,删除成功,退出删除模块;
步骤C4)如果所需删除的信息指纹与所有候选存储桶中的指纹都不匹配,则该待删除信息不存在,退出删除模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111334205.XA CN116126928A (zh) | 2021-11-11 | 2021-11-11 | 一种基于可变指纹布谷鸟过滤器的信息查找*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111334205.XA CN116126928A (zh) | 2021-11-11 | 2021-11-11 | 一种基于可变指纹布谷鸟过滤器的信息查找*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116126928A true CN116126928A (zh) | 2023-05-16 |
Family
ID=86304946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111334205.XA Pending CN116126928A (zh) | 2021-11-11 | 2021-11-11 | 一种基于可变指纹布谷鸟过滤器的信息查找*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116126928A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116701440A (zh) * | 2023-06-15 | 2023-09-05 | 泉城省实验室 | 一种布谷鸟过滤器及数据***、查询、删除方法 |
-
2021
- 2021-11-11 CN CN202111334205.XA patent/CN116126928A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116701440A (zh) * | 2023-06-15 | 2023-09-05 | 泉城省实验室 | 一种布谷鸟过滤器及数据***、查询、删除方法 |
CN116701440B (zh) * | 2023-06-15 | 2024-04-16 | 泉城省实验室 | 一种布谷鸟过滤器及数据***、查询、删除方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101540723B (zh) | 一种流表查找方法和装置 | |
CN106874348B (zh) | 文件存储和索引方法、装置及读取文件的方法 | |
CN110737663B (zh) | 一种数据存储方法、装置、设备及存储介质 | |
Yao et al. | An energy-efficient and access latency optimized indexing scheme for wireless data broadcast | |
Xiao et al. | Using parallel bloom filters for multiattribute representation on network services | |
CN108874987B (zh) | 表项管理方法、装置及交换芯片 | |
CN103051543A (zh) | 一种路由前缀的处理、查找、增加及删除方法 | |
CN110928690B (zh) | 一种在5g网络环境下区块链数据同步和验证的方法 | |
JP2009219012A (ja) | 固定長データの検索方法 | |
CN116578746A (zh) | 对象去重方法及装置 | |
CN116126928A (zh) | 一种基于可变指纹布谷鸟过滤器的信息查找*** | |
Lee et al. | Dual-load Bloom filter: Application for name lookup | |
CN117435776B (zh) | 元数据存储和查询方法、装置、计算机设备及存储介质 | |
CN103457855A (zh) | 无类域间路由表建立、以及报文转发的方法和装置 | |
CN108241710A (zh) | 一种文件创建方法、装置以及文件查询方法、装置 | |
KR100268221B1 (ko) | 순회 여분 검사를 이용한 랜 스위치의 맥 주소 해슁 방법 및장치 | |
CN111190545B (zh) | 一种基于软件实现的trie结构进行LPM规则压缩存储的方法 | |
Kniesburges et al. | Hashed Patricia Trie: Efficient longest prefix matching in peer-to-peer systems | |
Najafimehr et al. | SLCF: Single-hash lookup cuckoo filter | |
CN116010677B (zh) | 空间索引方法、装置及其电子设备 | |
US20230315759A1 (en) | A method of operating a storage device of an access point, a method of locating a device context of an end node device stored in a storage device of an access point, and an access point | |
CN115567542B (zh) | 节点集合的维护方法及装置 | |
CN115550251B (zh) | 区块链网络、节点集合的维护方法及装置 | |
CN112929459B (zh) | 一种边缘***及数据操作请求的处理方法 | |
CN111131197B (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230810 Address after: Room 1601, 16th Floor, East Tower, Ximei Building, No. 6 Changchun Road, High-tech Industrial Development Zone, Zhengzhou City, Henan Province, 450000 Applicant after: Zhengzhou xinrand Network Technology Co.,Ltd. Address before: 100190, No. 21 West Fourth Ring Road, Beijing, Haidian District Applicant before: INSTITUTE OF ACOUSTICS, CHINESE ACADEMY OF SCIENCES |
|
TA01 | Transfer of patent application right |