CN102609446B - 一种分布式Bloom过滤系统及其使用方法 - Google Patents

一种分布式Bloom过滤系统及其使用方法 Download PDF

Info

Publication number
CN102609446B
CN102609446B CN 201210001685 CN201210001685A CN102609446B CN 102609446 B CN102609446 B CN 102609446B CN 201210001685 CN201210001685 CN 201210001685 CN 201210001685 A CN201210001685 A CN 201210001685A CN 102609446 B CN102609446 B CN 102609446B
Authority
CN
China
Prior art keywords
child node
filtering system
data
input data
present input
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
Application number
CN 201210001685
Other languages
English (en)
Other versions
CN102609446A (zh
Inventor
汤伟宾
罗佳
张永光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen Meiya Pico Information Co Ltd
Original Assignee
Xiamen Meiya Pico Information Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xiamen Meiya Pico Information Co Ltd filed Critical Xiamen Meiya Pico Information Co Ltd
Priority to CN 201210001685 priority Critical patent/CN102609446B/zh
Publication of CN102609446A publication Critical patent/CN102609446A/zh
Application granted granted Critical
Publication of CN102609446B publication Critical patent/CN102609446B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种分布式Bloom过滤系统,包括分布式Bloom过滤系统主控模块和若干个子节点;其中,所述子节点是Bloom过滤器;所述若干个子节点形成一个闭合环,所述分布式Bloom过滤系统主控模块独立于所述子节点形成的闭合环外外,所述分布式Bloom过滤系统主控模块用于完成当前输入数据的第一重哈希的计算及所述当前输入数据到子节点的映射,所述子节点用于完成所述当前输入数据的第二重哈希计算,并根据当前输入数据的第二重哈希计算结果对所述当前输入数据进行数据查询。本发明提供的方案不仅检索速度快、精度高、扩展性好,而且特征值存储空间要求低,特别适合云计算时代的资源查询及信息检索。

Description

一种分布式Bloom过滤系统及其使用方法
技术领域
 本发明涉及信息检索及过滤、云计算、分布式计算等计算机技术领域,尤其涉及一种分布式Bloom过滤系统及其使用方法。
背景技术
随着互联网技术的发展,时时刻刻需要实现资源的共享及数据的交互,分布式技术、云计算技术是当今互联网技术的发展潮流及其研究热点。在资源共享时,我们经常需要判断某个表项是否包含在一个数据集中,例如:在网络爬虫里,一个网址是否已被访问过;对于一个网址的访问统计,当前的连接IP是否已来访问过等等,这就需要进行资源查询或信息检索。
在进行资源查询的信息处理过程中,采用何种查找方式依赖于信息的表示策略。在云计算时代的应用环境中,处理的对象都是海量数据,要在海量的数据里面实现资源的快速查询是有一定的技术难度的。此外,传统的哈希表检索方式,虽然可以实现快速查询,但是会造成极大的存储空间浪费,而且当数据集大到一定程度时,哈希表的空间利用率会更低。作为哈希表的一个变种,现有技术中的Bloom过滤器能够以极小的空间完成哈希判功能。在能够容忍的小范围误判的前提下,Bloom过滤器能很好地实现低存储要求和高响应速度的要求。然而,现有技术中的Bloom过滤器都是以单子节点形式存在,显然,在信息大爆炸的时代,单子节点的Bloom过滤器已经无法满足现今的海量数据检索需求,因此需要一种不仅具有很好的时间和空间检索效率、且能够对海量数据进行检索的方案。
发明内容
有鉴于此,本发明提供一种分布式Bloom过滤系统及其使用方法,用以解决现有技术中单子节点Bloom过滤器无法实现对海量数据的快速检索查询的缺点,本发明提供的方案能够实现数据的快速查询以及故障处理,耗费的存储空间少,同时具有高效检索、易扩展等优点,此外还能实现分布式Bloom过滤系统内子节点的随意插拔,实用性强。
本发明提供的一种分布式Bloom过滤系统,包括分布式Bloom过滤系统主控模块和若干个子节点;其中,所述子节点是Bloom过滤器;所述若干个子节点形成一个闭合环,所述分布式Bloom过滤系统主控模块独立于所述子节点形成的闭合环外外,所述分布式Bloom过滤系统主控模块用于完成当前输入数据的第一重哈希的计算及所述当前输入数据到子节点的映射,所述子节点用于完成所述当前输入数据的第二重哈希计算,并根据当前输入数据的第二重哈希计算结果对所述当前输入数据进行数据查询。
所述分布式Bloom过滤系统主控模块包括:分布式Bloom过滤系统初始化模块、数据接收模块、一重哈希计算模块、子节点选择映射模块、分布式Bloom过滤系统管理模块、故障处理模块和结果反馈模块;所述分布式Bloom过滤系统初始化模块用于在所述分布式Bloom过滤系统首次启动时,将每个子节点的Bloom位向量集合表上的所有数据都初始化为0,为每个子节点指定不同的标记值,并将每个子节点的标记值提供给所述分布式Bloom过滤系统管理模块;还用于完成子节点的日志加载和数据备份;所述数据接收模块用于接收用户当前输入数据并提供给所述一重哈希计算模块;所述一重哈希计算模块用于对所述当前输入数据进行一重哈希计算,并将计算结果提供给所述子节点选择映射模块;所述子节点选择映射模块用于根据所述当前输入数据的一重哈希计算值,为当前输入数据选择子节点,并将所述当前输入数据的一重哈希计算值通过所述分布式Bloom过滤系统管理模块发送给被选择的子节点;所述分布式Bloom过滤系统管理模块用于将所述当前输入数据的一重哈希计算值提供给所述子节点选择映射模块为当前输入数据选择的子节点,还用于对各子节点对所述当前输入数据的数据查询结果进行管理,并将所述数据查询结果通过所述结果反馈模块反馈给用户;还用于控制子节点的插入、拔除和更换;所述故障处理模块用于实时监测子节点的状态,并在子节点出现故障时通知所述分布式Bloom过滤系统管理模块将当前故障子节点更换为一个新的子节点;
所述子节点包括二重哈希计算模块、数据操作模块和日志备份模块;所述二重哈希计算模块用于对收到的所述当前输入数据的一重哈希计算值进行二重哈希计算,并将所述当前输入数据的二重哈希计算值提供给所述数据操作模块;所述数据操作模块根据收到的所述当前输入数据的二重哈希计算值进行数据的Bloom位地址映射,并在所映射的地址所指内存中进行所述当前输入数据的数据查询;所述日志备份模块用于备份本子节点在运行过程中的操作日志以及数据。
本发明提供的一种对应于本发明提供的分布式Bloom过滤系统的分布式Bloom过滤系统使用方法,包括:步骤1:为分布式Bloom过滤系统中的各子节点指定标记值;步骤2:配置各所述子节点的数据集合表;步骤3:接收用户的当前输入数据;步骤4:对所述当前输入数据进行数据查询。
所述步骤4包括:
步骤4.1:分布式Bloom过滤系统主控模块对所述当前输入数据进行一重哈希计算;
步骤4.2:分布式Bloom过滤系统主控模块根据所述当前输入数据的一重哈希计算值和各子节点的标记值,为所述当前输入数据选择子节点;
步骤4.3:被选择的子节点根据收到的当前输入数据的一重哈希计算值进行二重哈希计算;
步骤4.4:根据当前输入数据的二重哈希计算值进行所述当前输入数据在被选择的子节点内的Bloom位地址映射;
步骤4.5:在上一步骤所映射的地址所指内存中进行所述当前输入数据的数据查询。
所述步骤4.2包括:若所述当前输入数据的一重哈希计算值                                               
Figure 422616DEST_PATH_IMAGE002
如果满足:
Figure 3770DEST_PATH_IMAGE004
,则认为所述当前输入数据落在该分布式Bloom过滤系统的第i个子节点的数据集合表上,分布式Bloom过滤系统主控模块选择所述第i个子节点作为所述当前输入数据的数据查询节点,将当前输入数据的一重哈希计算值提供给所述第i个子节点;其中,
Figure 525887DEST_PATH_IMAGE006
,N为所述分布式Bloom过滤系统中的子节点数,所述
Figure 254809DEST_PATH_IMAGE008
Figure 271306DEST_PATH_IMAGE010
为第i个子节点以及第i+1个子节点的标记值。
所述步骤4.4包括:取所述当前输入数据的二重哈希计算值的连续n位作为Bloom位向量的维度索引,并取所述当前输入数据的二重哈希计算值的其余连续的m位作为Bloom位向量索引,进行所述当前输入数据在被选择的子节点内的Bloom位地址映射;其中,
Figure 472348DEST_PATH_IMAGE012
,S为Bloom位向量的个数,T表示Bloom位向量的维度。
所述步骤4.5包括:在所述地址所指的内存中查询对应的Bloom位状态,若Bloom位状态为0,则先把所述当前输入数据的一重哈希计算值写入当前查询的子节点已排序好的日志文件中,再对相应的Bloom位进行置1操作,并向分布式Bloom过滤系统管理模块返回“已将当前输入数据插入当前查询的子节点数据集合表”的数据查询结果;若Bloom位状态为1,则向分布式Bloom过滤系统管理模块返回“当前输入数据存在于当前查询的子节点的数据集合表中”的数据查询结果。
所述步骤4.5还包括:清除查询到的数据。
所述步骤3之前还包括在所述分布式Bloom过滤系统中插入新子节点:根据当前分布式Bloom过滤系统的数据到子节点的映射机制,将原映射于当前插入的所述新子节点两端的子节点上的部分数据迁移至所述新子节点,并更新插入所述新子节点后的所述分布式Bloom过滤系统的各子节点的标记值。
所述步骤3之前还包括拔除所述分布式Bloom过滤系统中的子节点:根据当前分布式Bloom过滤系统的数据到子节点的映射机制,将需要拔除的子节点上的数据迁移至与所述需要拔除的子节点相邻的两个子节点之中的一个子节点上,并更新拔除子节点后的所述分布式Bloom过滤系统的各子节点的标记值。
当检测到所述分布式Bloom过滤系统中有子节点出现故障时,将一个新子节点的标记值设为故障子节点的标记值,并将所述故障子节点的日志数据加载至所述新子节点。
本发明提供的分布式Bloom过滤系统及其使用方法将分布式Bloom过滤系统中的所有子节点组成一个环,通过分布式Bloom过滤系统中的分布式Bloom过滤系统主控模块管理子节点,分布式Bloom过滤系统主控模块结合子节点对输入数据进行多重哈希转化,以实现子节点和数据集合的快速查询,同时能有效处理子节点故障等问题。本发明提供的方案不仅检索速度快、精度高、扩展性好,而且特征值存储空间要求低,特别适合云计算时代的资源查询及信息检索。
附图说明
图1是本发明实施例提供的一种分布式Bloom过滤系统;
图2是本发明实施例提供的分布式Bloom过滤系统使用方法;
图3是图2中S24的详细流程图;
图4是采用本发明提供的分布式Bloom过滤系统查询过的数据在各子节点上的映射关系示意图;
图5是对图4所示结构插入子节点后的分布式Bloom过滤系统子节点以及原数据和子节点映射关系变化示意图;
图6是对图4所示结构拔除子节点1后的分布式Bloom过滤系统子节点以及原数据和子节点映射关系变化示意图。
具体实施方式
为了克服现有技术之不足,本发明实施例提供一种分布式Bloom过滤系统及其使用方法,该方案将分布式Bloom过滤系统主控模块和若干个子节点组成一个分布式Bloom过滤系统,分布式Bloom过滤系统中的所有子节点组成一个封闭环,通过分布式Bloom过滤系统主控模块完成数据第一重哈希的计算及子节点的映射,而子节点则完成数据的二重哈希计算及相应的数据操作,能够对输入数据进行多重哈希转化,实现子节点和数据集合的快速查询,同时还能有效处理子节点故障等问题。
以下结合附图,具体说明本发明实施例。
图1所示为本发明实施例提供的一种分布式Bloom过滤系统,包括分布式Bloom过滤系统主控模块1和若干个子节点2,子节点2是Bloom过滤器的真正实体,若干个子节点2形成一个闭合环,分布式Bloom过滤系统主控模块1独立于环外,分布式Bloom过滤系统主控模块1用于完成当前输入数据的第一重哈希的计算及当前输入数据到子节点的映射,子节点2用于完成当前输入数据的第二重哈希计算及相应的数据查询,其中,所述相应的数据查询是指数据的查询、插入和清除。
如图1中所示,分布式Bloom过滤系统主控模块1包括数据接收模块3、一重哈希计算模块4、子节点选择映射模块5、分布式Bloom过滤系统初始化模块6、分布式Bloom过滤系统管理模块7、故障处理模块8和结果反馈模块9,其中,
分布式Bloom过滤系统初始化模块6用于完成子节点2的日志加载、备份数据等子节点初始化工作,用于为各子节点2指定不同的标记(Token)值,然后再将所有子节点2的Token值汇总提供给分布式Bloom过滤系统管理模块7,具体地,若子节点数量为N,则按顺序为分布式Bloom过滤系统中的N个子节点2分别指定一个初始化大整数型的Token值,较佳地,若每个子节点2的配置一样,则将第i个子节点2的Token值设定为:
Figure 201772DEST_PATH_IMAGE018
。此外,当分布式Bloom过滤系统首次启动时,分布式Bloom过滤系统初始化模块6将每个子节点2的Bloom位向量集合表上的所有数据都初始化为0。
数据接收模块3用于接收用户当前输入数据并提供给一重哈希计算模块4;一重哈希计算模块4用于对当前输入数据进行一重哈希计算,并将计算结果提供给子节点选择映射模块5。
子节点选择映射模块5用于根据当前输入数据的一重哈希计算值,判断该哈希值在哪个区间范围内,为当前输入数据选择子节点2,并将当前输入数据的一重哈希计算值通过分布式Bloom过滤系统管理模块7发送给被选择的子节点2。
分布式Bloom过滤系统管理模块7将当前输入数据的一重哈希计算值提供给子节点选择映射模块5为当前输入数据选择的子节点2,此外,分布式Bloom过滤系统管理模块7还用于对各子节点2的数据操作模块11的数据操作查询进行管理,将各子节点2的数据操作模块11返回的数据查询结果通过结果反馈模块9反馈给用户,此外,分布式Bloom过滤系统管理模块7还用于控制子节点的插入、拔除和更换。
故障处理模块8用于实时监测子节点2的状态,并在子节点2出现故障时通知分布式Bloom过滤系统管理模块7将当前故障子节点更换为一个新的子节点。
每个子节点2包括二重哈希计算模块10、数据操作模块11和日志备份模块12。二重哈希计算模块10对收到的当前输入数据的一重哈希计算值进行二重哈希计算,并将当前输入数据的二重哈希计算值提供给数据操作模块11。数据操作模块11根据收到的当前输入数据的二重哈希计算值进行数据的Bloom位地址映射,并在所映射的地址所指内存中进行当前输入数据的查询、插入或清除。日志备份模块12用于备份本子节点2在运行过程中的操作日志以及数据。
本发明实施例还提供一种对应于本发明提供的分布式Bloom过滤系统的分布式Bloom过滤系统使用方法,如图2所示,包括:
S21:为系统中的每个子节点指定标记值。此处所述分布式Bloom过滤系统如图1所示,首次使用时,首先为各子节点分配不同的Token值,然后再在分布式Bloom过滤系统主控模块上汇总所有子节点的Token值,以便做子节点映射。具体地,若子节点数量为N,则按顺序为分布式Bloom过滤系统中的N个子节点分别指定一个初始化大整数型的Token值,由于在极端情况下,分布式Bloom过滤系统支持的子节点数可达
Figure 491939DEST_PATH_IMAGE020
个,因此Token值的数值范围为0至
Figure 434487DEST_PATH_IMAGE022
。分布式Bloom过滤系统主控模块在设定Token值时,应尽量使各个子节点平衡分布,Token值需根据具体的运行环境进行平衡设定。较佳地,若每个子节点的配置一样,则将第i个子节点的Token值设定为:
Figure 560838DEST_PATH_IMAGE018
这样,分布式Bloom过滤系统中的所有子节点就组成一个Token环,环上的子节点按照Token大小值顺序排序,以便子节点查询时的二分查找,时间复杂度为O(logN);分布式Bloom过滤系统成功启动后,每个子节点都有一张数据表,用来维护该环上的Token值,分布式Bloom过滤系统每次启动都会加载该数据表。
S22:配置各子节点的数据集合表。此步骤中,如果该分布式Bloom过滤系统是首次启动,则将每个子节点的Bloom位向量集合表上的所有数据都初始化为0。由于本发明实施例提供的数据查询方法中,每个子节点在运行过程中都保存有自己写的日志和数据备份,以防断点引起的数据丢失等,因此若分布式Bloom过滤系统是非首次启动,则向Bloom位向量集合表中加载上次分布式Bloom过滤系统关闭时该子节点保存的日志和备份数据。
S23:接收用户的当前输入数据。
S24:对当前输入数据进行数据查询。
图3为图2中S24的详细流程图,包括以下步骤:
S31:分布式Bloom过滤系统主控模块对当前输入数据进行一重哈希计算。为方便描述,此处设用户当前输入的数据为D,则分布式Bloom过滤系统主控模块通过哈希算法H计算出一个128位的哈希值(一重哈希计算值),记为:
 
S32:分布式Bloom过滤系统主控模块根据一重哈希计算值和各子节点的标记值,为当前输入数据选择子节点。此步骤中,判断一重哈希计算值
Figure 391707DEST_PATH_IMAGE002
如果满足:
Figure 505157DEST_PATH_IMAGE026
,认为当前输入数据D落在分布式Bloom过滤系统的第i个子节点的数据集合表上,分布式Bloom过滤系统主控模块将当前输入数据的一重哈希计算值提供给所选择的第i个子节点。
S33:被选择的子节点根据收到的当前输入数据的一重哈希计算值进行二重哈希计算。此步骤中,二重哈希计算得到当前输入数据的二重哈希计算值,记为:
Figure 617338DEST_PATH_IMAGE028
这样可以打乱原有数据的相关性,进一步减少查询时的冲突概率。其中,
Figure 841646DEST_PATH_IMAGE030
共128个二进制位。
S34:根据当前输入数据的二重哈希计算值进行当前输入数据在被选择的子节点内的Bloom位地址映射。
其中,各子节点的Bloom位向量集合表以二维位矩阵B[S,T]表示,其中,S表示Bloom位向量的个数,T表示Bloom位向量的维度。为了进行当前输入数据在被选择的子节点内的Bloom位地址映射,取二重哈希计算值
Figure 903143DEST_PATH_IMAGE030
中的连续n位作为Bloom位向量的维度索引(从
Figure 125177DEST_PATH_IMAGE030
的128位中取n位出来,当成位矩阵B的列索引),比如最低的n位,并取
Figure 537704DEST_PATH_IMAGE030
中其余连续的m位作为Bloom位向量索引(从
Figure 251189DEST_PATH_IMAGE032
的其余位中取m位,当成位矩阵B的行索引),比如最高的m位,n和m需满足如下的关系:
根据实际取得的n和m值可映射得到Bloom位地址。例如:假设根据二重哈希计算值
Figure 560127DEST_PATH_IMAGE032
取得的m为01000000(共8个二进制位),n为0110(共4个二进制位),则最后映射的Bloom位地址为B[0x40,0x06]。
S35:在上一步骤所映射的地址所指内存中进行当前输入数据的查询,并向用户返回数据查询结果。具体包括:在所述地址所指的内存中进行当前输入数据的查询,所述数据查询过程是指在该内存中查询对应的Bloom位状态:Bloom位状态为0表示当前输入数据(当前需要查询的数据)不属于当前查询的子节点的数据集合表中,Bloom位状态为1表示当前需要查询的数据存在于当前查询的子节点的数据集合表中,则向分布式Bloom过滤系统管理模块返回“当前输入数据存在于当前查询的子节点的数据集合表中”的数据查询结果。
优选地,步骤S35中,若当前需要查询的数据不存在于当前查询的子节点的数据集合表中(查询的Bloom位状态为0),则将当前输入数据插入当前所查询的子节点数据集合表中,数据插入的具体过程为:当前子节点先把当前输入数据对应的一重哈希计算值
Figure 646901DEST_PATH_IMAGE002
写入已排序好的日志文件中,以防断电数据丢失以及后续的数据维护,再对相应的Bloom位进行置1操作,并向分布式Bloom过滤系统管理模块返回“已将当前输入数据插入当前查询的子节点数据集合表”的数据查询结果。
优选地,步骤S35还可包括数据清除过程:对于Bloom位向量的位状态清除只需对原来的状态进行异或操作,并赋值给新状态即可;而日志文件的数据清除,由于数据已按大小排序好,只需进行一次二分查找,时间复杂度为O(logN),即可快速查询到需要删除的数据位置,执行删除即可。
图4所示为采用本发明提供的分布式Bloom过滤系统查询过的数据在各子节点上的映射关系示意图。图4中,记录过的数据到子节点的映射采用的是顺时针分布机制,事实上,数据到子节点的映射也可以采用逆时针分布机制。图4中仅是为了方便说明仅画出了4个子节点,显然,本发明提供的分布式Bloom过滤系统中的子节点个数不仅限于此,
图2所示方法还包括子节点插入过程,具体地,假设现在需要在第i个子节点和第i+1个子节点中间插入新子节点,新子节点的Token值记为
Figure 213011DEST_PATH_IMAGE016
,那么其必须满足如下关系:
Figure 514680DEST_PATH_IMAGE036
插入新子节点时,如果当前系统的数据到子节点的映射采用的是顺时针分布机制,则只需将原来分布在原子节点
Figure 812937DEST_PATH_IMAGE038
上且当前位于新子节点
Figure 200056DEST_PATH_IMAGE016
和原子节点
Figure 258273DEST_PATH_IMAGE040
之间的数据搬移到
Figure 148869DEST_PATH_IMAGE016
上即可,无需改变其他N-1个子节点的数据状态,最后同步插入新子节点后分布式Bloom过滤系统中各个子节点上新的Token数据表,如图5所示为对图4所示结构插入子节点
Figure 883606DEST_PATH_IMAGE016
后的分布式Bloom过滤系统子节点以及原数据和子节点映射关系变化示意图。类似地,如果当前系统的数据到子节点的映射采用的是逆时针分布机制,则只需将原来分布在原子节点上且当前位于新子节点
Figure 852885DEST_PATH_IMAGE016
和原子节点
Figure 863567DEST_PATH_IMAGE038
之间的数据搬移到
Figure 769206DEST_PATH_IMAGE016
上即可,无需改变其他N-1个子节点的数据状态,最后同步插入新子节点后分布式Bloom过滤系统中各个子节点上新的Token数据表。
图2所示方法还包括子节点拔除过程,子节点拔除过程是子节点插入的逆过程,具体地,如果当前系统的数据到子节点的映射采用的是顺时针分布机制,则先把需要拔除的第i个子节点上的数据搬移到原第i+1个子节点上,如果当前系统的数据到子节点的映射采用的是逆时针分布机制,则先把需要拔除的第i个子节点上的数据搬移到原第i-1个子节点上,无需改变其余子节点的数据状态,随后移除第i个子节点的Token值,并同步到其他子节点上。更新分布式Bloom过滤系统中各个子节点上新的Token数据表。图6所示为对图4所示结构拔除子节点1后的分布式Bloom过滤系统子节点以及原数据和子节点映射关系变化示意图。
当某个子节点出现故障,此时需要把它替换为一个新的子节点,因此图2所示方法还包括子节点故障处理过程,包括:把新子节点的Token值设置为故障子节点的Token值,并做数据的日志还原,这样可以保持整个分布式Bloom过滤系统原有的状态,使分布式Bloom过滤系统受子节点的影响大大减小。
由于子节点的频繁插入或拔除,会造成分布式Bloom过滤系统负载的不均衡,因此图2所示方法还包括分布式Bloom过滤系统的数据平衡过程,用于实现负载的平衡,数据平衡过程包括:在进行子节点插入或拔除后更新各个子节点的Token值,将负载大的子节点上的数据平衡至负载小的子节点上,数据迁移机制可以采用类似子节点插拔过程中的数据迁移机制。
本发明中的分布式Bloom过滤器系统扩展性好,具有多数据中心节点,每个节点都是中心节点,所有节点组成一个圆环,节点间通过P2P协议进行数据交换;数据寻址查询快,能够在复杂度为O(1)的时间内完成数据查询;通过多重哈希机制减少冲突概率;通过日志机制和备份机制,防止因断电引起的数据丢失;通过给每个节点设置一个初始化Token值,使整个分布式Bloom过滤系统不受单点故障的影响,同时方便节点的查询;采用Bloom过滤器,每个位代表一种状态,极大地提高了空间利用率。本发明特别适合云计算时代的资源查询及信息检索。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (9)

1.一种分布式Bloom过滤系统,其特征在于,包括分布式Bloom过滤系统主控模块和若干个子节点;其中,所述子节点是Bloom过滤器;
所述若干个子节点形成一个闭合环,所述分布式Bloom过滤系统主控模块独立于所述子节点形成的闭合环外,所述分布式Bloom过滤系统主控模块用于完成当前输入数据的第一重哈希的计算及所述当前输入数据到子节点的映射,所述子节点用于完成所述当前输入数据的第二重哈希计算,并根据当前输入数据的第二重哈希计算结果对所述当前输入数据进行数据查询;
所述分布式Bloom过滤系统主控模块包括:分布式Bloom过滤系统初始化模块、数据接收模块、一重哈希计算模块、子节点选择映射模块、分布式Bloom过滤系统管理模块、故障处理模块和结果反馈模块;
所述分布式Bloom过滤系统初始化模块用于在所述分布式Bloom过滤系统首次启动时,将每个子节点的Bloom位向量集合表上的所有数据都初始化为0,为每个子节点指定不同的标记值,并将每个子节点的标记值提供给所述分布式Bloom过滤系统管理模块;还用于完成子节点的日志加载和数据备份;
所述数据接收模块用于接收用户当前输入数据并提供给所述一重哈希计算模块;
所述一重哈希计算模块用于对所述当前输入数据进行一重哈希计算,并将计算结果提供给所述子节点选择映射模块;
所述子节点选择映射模块用于根据所述当前输入数据的一重哈希计算值,为当前输入数据选择子节点,并将所述当前输入数据的一重哈希计算值通过所述分布式Bloom过滤系统管理模块发送给被选择的子节点;
所述分布式Bloom过滤系统管理模块用于将所述当前输入数据的一重哈希计算值提供给所述子节点选择映射模块为当前输入数据选择的子节点,还用于对各子节点对所述当前输入数据的数据查询结果进行管理,并将所述数据查询结果通过所述结果反馈模块反馈给用户;还用于控制子节点的插入、拔除和更换;
所述故障处理模块用于实时监测子节点的状态,并在子节点出现故障时通知所述分布式Bloom过滤系统管理模块将当前故障子节点更换为一个新的子节点;
所述子节点包括二重哈希计算模块、数据操作模块和日志备份模块;所述二重哈希计算模块用于对收到的所述当前输入数据的一重哈希计算值进行二重哈希计算,并将所述当前输入数据的二重哈希计算值提供给所述数据操作模块;所述数据操作模块根据收到的所述当前输入数据的二重哈希计算值进行数据的Bloom位地址映射,并在所映射的地址所指内存中进行所述当前输入数据的数据查询;所述日志备份模块用于备份本子节点在运行过程中的操作日志以及数据。
2.一种分布式Bloom过滤系统使用方法,其特征在于,包括:
步骤1:为分布式Bloom过滤系统中的各子节点指定标记值;
步骤2:配置各所述子节点的数据集合表;
步骤3:接收用户的当前输入数据;
步骤4:对所述当前输入数据进行数据查询;
所述步骤4包括:
步骤4.1:分布式Bloom过滤系统主控模块对所述当前输入数据进行一重哈希计算;
步骤4.2:分布式Bloom过滤系统主控模块根据所述当前输入数据的一重哈希计算值和各子节点的标记值,为所述当前输入数据选择子节点;
步骤4.3:被选择的子节点根据收到的当前输入数据的一重哈希计算值进行二重哈希计算;
步骤4.4:根据当前输入数据的二重哈希计算值进行所述当前输入数据在被选择的子节点内的Bloom位地址映射;
步骤4.5:在上一步骤所映射的地址所指内存中进行所述当前输入数据的数据查询。
3. 如权利要求2所述的一种分布式Bloom过滤系统使用方法,其特征在于,所述步骤4.2包括:若所述当前输入数据的一重哈希计算值                                               
Figure 2012100016852100001DEST_PATH_IMAGE002
如果满足:
Figure 2012100016852100001DEST_PATH_IMAGE004
,则认为所述当前输入数据落在该分布式Bloom过滤系统的第i个子节点的数据集合表上,分布式Bloom过滤系统主控模块选择所述第i个子节点作为所述当前输入数据的数据查询节点,将当前输入数据的一重哈希计算值提供给所述第i个子节点;其中,
Figure 2012100016852100001DEST_PATH_IMAGE006
,N为所述分布式Bloom过滤系统中的子节点数,所述
Figure DEST_PATH_IMAGE008
为第i个子节点以及第i+1个子节点的标记值。
4. 如权利要求3所述的一种分布式Bloom过滤系统使用方法,其特征在于,所述步骤4.4包括:取所述当前输入数据的二重哈希计算值的连续n位作为Bloom位向量的维度索引,并取所述当前输入数据的二重哈希计算值的其余连续的m位作为Bloom位向量索引,进行所述当前输入数据在被选择的子节点内的Bloom位地址映射;其中,
Figure 2012100016852100001DEST_PATH_IMAGE012
Figure DEST_PATH_IMAGE014
,S为Bloom位向量的个数,T表示Bloom位向量的维度。
5. 如权利要求4所述的一种分布式Bloom过滤系统使用方法,其特征在于,所述步骤4.5包括:在所述地址所指的内存中查询对应的Bloom位状态,若Bloom位状态为0,则先把所述当前输入数据的一重哈希计算值写入当前查询的子节点已排序好的日志文件中,再对相应的Bloom位进行置1操作,并向分布式Bloom过滤系统管理模块返回“已将当前输入数据插入当前查询的子节点数据集合表”的数据查询结果;若Bloom位状态为1,则向分布式Bloom过滤系统管理模块返回“当前输入数据存在于当前查询的子节点的数据集合表中”的数据查询结果。
6. 如权利要求5所述的一种分布式Bloom过滤系统使用方法,其特征在于,所述步骤4.5还包括:清除查询到的数据。
7. 如权利要求2至5任一项所述的一种分布式Bloom过滤系统使用方法,其特征在于,所述步骤3之前还包括在所述分布式Bloom过滤系统中插入新子节点:根据当前分布式Bloom过滤系统的数据到子节点的映射机制,将原映射于当前插入的所述新子节点两端的子节点上的部分数据迁移至所述新子节点,并更新插入所述新子节点后的所述分布式Bloom过滤系统的各子节点的标记值。
8. 如权利要求2至5任一所述的一种分布式Bloom过滤系统使用方法,其特征在于,所述步骤3之前还包括拔除所述分布式Bloom过滤系统中的子节点:根据当前分布式Bloom过滤系统的数据到子节点的映射机制,将需要拔除的子节点上的数据迁移至与所述需要拔除的子节点相邻的两个子节点之中的一个子节点上,并更新拔除子节点后的所述分布式Bloom过滤系统的各子节点的标记值。
9. 如权利要求2至5任一所述的一种分布式Bloom过滤系统使用方法,其特征在于,当检测到所述分布式Bloom过滤系统中有子节点出现故障时,将一个新子节点的标记值设为故障子节点的标记值,并将所述故障子节点的日志数据加载至所述新子节点。
CN 201210001685 2012-01-05 2012-01-05 一种分布式Bloom过滤系统及其使用方法 Active CN102609446B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201210001685 CN102609446B (zh) 2012-01-05 2012-01-05 一种分布式Bloom过滤系统及其使用方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201210001685 CN102609446B (zh) 2012-01-05 2012-01-05 一种分布式Bloom过滤系统及其使用方法

Publications (2)

Publication Number Publication Date
CN102609446A CN102609446A (zh) 2012-07-25
CN102609446B true CN102609446B (zh) 2013-12-25

Family

ID=46526818

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201210001685 Active CN102609446B (zh) 2012-01-05 2012-01-05 一种分布式Bloom过滤系统及其使用方法

Country Status (1)

Country Link
CN (1) CN102609446B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210150314A1 (en) * 2018-09-27 2021-05-20 Deepmind Technologies Limited Scalable and compressive neural network data storage system

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9565080B2 (en) 2012-11-15 2017-02-07 Microsoft Technology Licensing, Llc Evaluating electronic network devices in view of cost and service level considerations
US9325748B2 (en) * 2012-11-15 2016-04-26 Microsoft Technology Licensing, Llc Characterizing service levels on an electronic network
CN103927124B (zh) * 2013-01-15 2018-03-13 深圳市腾讯计算机系统有限公司 以Hash方式组织的磁盘访问控制装置及方法
CN103226608B (zh) * 2013-04-28 2016-04-27 北京航空航天大学 一种基于目录级可伸缩的Bloom Filter位图表的并行文件搜索方法
CN104572727B (zh) * 2013-10-22 2018-09-28 阿里巴巴集团控股有限公司 一种数据查询方法及装置
CN104270458A (zh) * 2014-10-17 2015-01-07 浪潮(北京)电子信息产业有限公司 一种实现云存储系统数据分布管理的方法及装置
CN106970930B (zh) * 2016-10-10 2021-01-05 创新先进技术有限公司 消息发送确定方法及装置、数据表创建方法及装置
CN107995309A (zh) * 2017-12-18 2018-05-04 苏州蜗牛数字科技股份有限公司 一种分布式数据节点的协调方法及系统
CN108121810A (zh) * 2017-12-26 2018-06-05 北京锐安科技有限公司 一种数据去重方法、系统、中心服务器及分布式服务器
CN108683729B (zh) * 2018-05-14 2019-06-18 重庆第二师范学院 一种面向可信云的环境监测数据安全存储系统及方法
CN108932300B (zh) * 2018-06-06 2022-05-27 成都深思科技有限公司 一种无限迭代的过滤分析方法、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101577721A (zh) * 2008-12-05 2009-11-11 湖南大学 一种索引拆分布鲁姆过滤器及其插入、删除和查询方法
CN101958883A (zh) * 2010-03-26 2011-01-26 湘潭大学 一种基于Bloom Filter和开源内核防御SYN Flood攻击的方法
CN102203773A (zh) * 2008-09-19 2011-09-28 甲骨文国际公司 在具有卸载的布隆过滤器的智能存储器中利用协同并行过滤的哈希联接
CN102246172A (zh) * 2008-10-13 2011-11-16 法卢资产有限公司 用于电子内容的分布式索引搜索的系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010022767A1 (en) * 2008-08-26 2010-03-04 Telefonaktiebolaget Lm Ericsson (Publ) Packet forwarding in a network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102203773A (zh) * 2008-09-19 2011-09-28 甲骨文国际公司 在具有卸载的布隆过滤器的智能存储器中利用协同并行过滤的哈希联接
CN102246172A (zh) * 2008-10-13 2011-11-16 法卢资产有限公司 用于电子内容的分布式索引搜索的系统及方法
CN101577721A (zh) * 2008-12-05 2009-11-11 湖南大学 一种索引拆分布鲁姆过滤器及其插入、删除和查询方法
CN101958883A (zh) * 2010-03-26 2011-01-26 湘潭大学 一种基于Bloom Filter和开源内核防御SYN Flood攻击的方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210150314A1 (en) * 2018-09-27 2021-05-20 Deepmind Technologies Limited Scalable and compressive neural network data storage system

Also Published As

Publication number Publication date
CN102609446A (zh) 2012-07-25

Similar Documents

Publication Publication Date Title
CN102609446B (zh) 一种分布式Bloom过滤系统及其使用方法
CN102567495B (zh) 一种海量信息存储系统及实现方法
CN107710193B (zh) 分布式计算环境的数据放置控制
Li et al. Scaling distributed machine learning with the parameter server
US9424274B2 (en) Management of intermediate data spills during the shuffle phase of a map-reduce job
CN104301360B (zh) 一种日志数据记录的方法、日志服务器及系统
CN104537076B (zh) 一种文件读写方法及装置
Băzăr et al. The Transition from RDBMS to NoSQL. A Comparative Analysis of Three Popular Non-Relational Solutions: Cassandra, MongoDB and Couchbase.
CN104881466B (zh) 数据分片的处理以及垃圾文件的删除方法和装置
CN108885582A (zh) 存储器池结构的多租户存储器服务
CN104813292A (zh) 缩放计算群集
CN102662639A (zh) 一种基于Mapreduce的多GPU协同计算方法
CN102546782A (zh) 一种分布式系统及其数据操作方法
CN106407463A (zh) 一种基于Hadoop的图像处理方法及系统
CN103631924B (zh) 一种分布式数据库平台的应用方法和系统
CN106993064A (zh) 一种基于Openstack云平台实现海量数据可伸缩性存储的系统及其构建方法与应用
CN106569896B (zh) 一种数据分发及并行处理方法和系统
CN102662992A (zh) 一种海量小文件的存储、访问方法及装置
CN112860777B (zh) 数据处理方法、装置及设备
CN107465729B (zh) 基于访问次数排名的虚拟节点副本调整系统及方法
CN106055678A (zh) 一种基于hadoop的全景大数据分布式存储方法
CN108073696A (zh) 基于分布式内存数据库的gis应用方法
CN104063501A (zh) 基于hdfs的副本平衡方法
CN105608228A (zh) 一种高效的分布式的rdf数据存储方法
CN110113406A (zh) 基于分布式的计算服务集群框架

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20120725

Assignee: Xiaoma Baoli (Xiamen) Network Technology Co.,Ltd.

Assignor: XIAMEN MEIYA PICO INFORMATION Co.,Ltd.

Contract record no.: X2023350000072

Denomination of invention: A Distributed Bloom Filtering System and Its Usage

Granted publication date: 20131225

License type: Common License

Record date: 20230313