一种基于哈希环的分布式数据过滤方法技术

技术编号:15075015 阅读:119 留言:0更新日期:2017-04-06 19:57
本发明专利技术涉及数据过滤技术领域,特别是一种基于哈希环的分布式数据过滤方法,包括以下步骤,步骤S101:客户端接收分布式去重集群的信息;步骤S102:客户端接口数据情况请求;步骤S103:节点接收请求;步骤S104:数据过滤块定位,根据RPC发送的分区请求,hash取余后,定位到数据的数据过滤块;步骤S105:数据返回,对应的数据块,根据过滤器键,执行数据存在判断,返回对应状态,返回数据。采用上述结构后,本发明专利技术实现多租户功能,客户端可以根据业务需求,任意添加制定的类型的过滤器;实现过滤器的持久备份恢复,避免数据丢失;由于整个集群基于一致哈希环构建,过滤集群实现线性扩展;对于同一个过滤器,会构建多个子过滤器,降低误判率。

Distributed data filtering method based on Hash ring

The present invention relates to the technical field of data filtering, especially a distributed data filtering method based on Hash ring, which comprises the following steps: step S101, the client receives the distributed to cluster information; step S102: client interface data request; step S103: the node receiving the request; step S104: data filtering block location, according to the RPC transmission the partition hash request, take over, locate the data filtering block data; step S105: return the data, the corresponding data block, according to the filter button, determine execution data, returns the corresponding state, return data. With the above structure, the invention realizes the function of multi tenant, the client can according to the needs of the business, add any type of filter formulation; lasting filter implementing backup recovery, avoid data loss due to construction of the whole cluster; Hashi ring based on filtering cluster to realize linear expansion; for the same filter, will construct multiple sub filters. Reduce the misjudgment rate.

【技术实现步骤摘要】

本专利技术涉及数据过滤
,特别是一种基于哈希环的分布式数据过滤方法
技术介绍
布隆过滤器应用十分广泛,比如网页URL的去重,垃圾邮件的判别,集合重复元素的判别,查询加速,而布隆过滤器的使用是嵌套在应用程序中,易受应用程序本身的变化,导致出现过滤逻辑错误、已有判断数据丢失等异常情况。中国专利技术专利申请CN104601527A公开了一种数据过滤方法,包括:接收数据生成终端发送的数据包,并根据存储的订阅信息确定对应的数据接收终端;根据确定的各个数据接收终端对应的数据过滤条件对数据包进行过滤,得到与各个数据接收终端对应的数据过滤结果;将各个数据过滤结果发送至对应的数据接收终端。此专利技术在接收到数据包并根据订阅信息确定该数据包对应的数据接收终端后,通过各个数据接收终端对应的数据顾虑条件对该数据包进行过滤,并将得到的各个数据过滤结果发送至对应的数据接收终端,从而达到无需数据接收终端侧的用户根据自身需求对该数据包进行过滤的目的;但是,此专利技术没有实现分布式数据过滤。
技术实现思路
本专利技术需要解决的技术问题提供一种基于哈希环的分布式数据过滤方法。为解决上述的技术问题,本专利技术的一种基于哈希环的分布式数据过滤方法,包括以下步骤,步骤S101:客户端接收分布式去重集群的信息;包括节点的状态和节点的Token,返回数据;步骤S102:客户端接口数据情况请求,根据一致哈希环Range分布,利用Murmur3hash数据过滤键,得到一个哈希环位置值X1,通过分布式过滤集群的range分布,计算X1所属的Range,选择对应过滤节点,利用RPC向远端节点发送请求;步骤S103:节点接收请求,根据RPC发送的过滤器要求,定位到相应的过滤器;步骤S104:数据过滤块定位,根据RPC发送的分区请求,hash取余后,定位到数据的数据过滤块;步骤S105:数据返回,对应的数据块,根据过滤器键,执行数据存在判断,返回对应状态,返回数据。进一步的,所述步骤S101中返回数据格式如下:为TokenY的前一个节点。更进一步的,所述步骤S102中RPC向远端节点发送请求,请求格式如下:更进一步的,所述步骤S103中根据″filter_name″,定位到对应的过滤器。更进一步的,步骤S104中根据″partition_key″,hash取余后,定位到数据的数据过滤块。更进一步的,步骤S104中hash取余时的n为创建设置的块数。进一步的,所述步骤S105中返回的数据如下:进一步的,所述步骤101中集群节点加入或移除具体包括以下步骤,步骤S1011:开始;步骤S1012:判断集群是否有节点加入或移出,如果没有,则休眠等待,返回步骤S1011;如果有,则进入步骤S1013;步骤S1013:各自节点锁定Token、Range分布全局表;步骤S1014:新增节点随机产生新Token;步骤S1015:判断新Token集群中是否已经存在,如果存在,则返回步骤S1014;如果不存在,则进入步骤S1016;步骤S1016:现有节点接收新增Token,所有节点重新计算Range;步骤S1017:新增节点加入集群,并通知客户端节点、Token、Range变化。采用上述结构后,本专利技术实现多租户功能,客户端可以根据业务需求,任意添加制定的类型的过滤器;实现过滤器的持久备份恢复,避免数据丢失;由于整个集群基于一致哈希环构建,过滤集群实现线性扩展;对于同一个过滤器,会构建多个子过滤器,降低误判率。附图说明下面将结合附图和具体实施方式对本专利技术作进一步详细的说明。图1为本专利技术一种基于哈希环的分布式数据过滤方法的流程图。图2为本专利技术节点的Token分布图。图3为本专利技术节点的Token及Range变化示意图。图4为本专利技术节点加入流程图。具体实施方式如图1所示,包括以下步骤,本专利技术的一种基于哈希环的分布式数据过滤方法,步骤S101:客户端接收分布式去重集群的信息;包括节点的状态和节点的Token,返回数据;步骤S102:客户端接口数据情况请求,根据一致哈希环Range分布,利用Murmur3hash数据过滤键,得到一个哈希环位置值X1,通过分布式过滤集群的range分布,计算X1所属的Range,选择对应过滤节点,利用RPC向远端节点发送请求;步骤S103:节点接收请求,根据RPC发送的过滤器要求,定位到相应的过滤器;步骤S104:数据过滤块定位,根据RPC发送的分区请求,hash取余后,定位到数据的数据过滤块;步骤S105:数据返回,对应的数据块,根据过滤器键,执行数据存在判断,返回对应状态,返回数据。进一步的,所述步骤S101中返回数据格式如下:为TokenY的前一个节点。更进一步的,所述步骤S102中RPC向远端节点发送请求,请求格式如下:更进一步的,所述步骤S103中根据″filter_name″,定位到对应的过滤器。更进一步的,步骤S104中根据″partition_key″,hash取余后,定位到数据的数据过滤块。更进一步的,步骤S104中hash取余时的n为创建设置的块数。进一步的,所述步骤S105中返回的数据如下:以网页爬虫URL去重过滤为例:如图2所示,分布式过滤集群的Range分布表为:A(1,25],B(26,50],C(51,75],D(75,0],其中D的range为环绕区间,代表具体负责的范围为<75的范围,加上<=0的范围。当需要过滤某个URLU1时,计算U1的Murmur3hash值,加入hash值为74时,通过计算range分布表,得知,需要去C节点进行去重过滤判断,故将请求发往节点C,节点C根据已有的BloomFilter数据块总数N,对URL进行哈希,对N取模,找到具体的BloomFilter块,进行BloomFilter判断,如果存在,则代表改URL,已经爬取,不需要再次爬取数据。进一步的,如图3和图4所示,所述步骤101中集群节点加入或移除具体包括以下步骤,步骤S1011:开始;步骤S1012:判断集群是否有节点加入或移出,如果没有,则休眠等待,返回步骤S1011;如果有,则进入步骤S1013;步骤S1013:各自节点锁定Token、Range分布全局表;步骤S1014:新增节点随机产生新Token;步骤S1015:判断新Token集群中是否已经存在,如果存在,则返回步骤S1014;如果不存在,则进入步骤S1016;步骤S1本文档来自技高网...
一种基于哈希环的分布式数据过滤方法

【技术保护点】
一种基于哈希环的分布式数据过滤方法,其特征在于,包括以下步骤,步骤S101:客户端接收分布式去重集群的信息;包括节点的状态和节点的Token,返回数据;步骤S102:客户端接口数据情况请求,根据一致哈希环Range分布,利用Murmur3hash数据过滤键,得到一个哈希环位置值X1,通过分布式过滤集群的range分布,计算X1所属的Range,选择对应过滤节点,利用RPC向远端节点发送请求;步骤S103:节点接收请求,根据RPC发送的过滤器要求,定位到相应的过滤器;步骤S104:数据过滤块定位,根据RPC发送的分区请求,hash取余后,定位到数据的数据过滤块;步骤S105:数据返回,对应的数据块,根据过滤器键,执行数据存在判断,返回对应状态,返回数据。

【技术特征摘要】
1.一种基于哈希环的分布式数据过滤方法,其特征在于,包括以下步骤,
步骤S101:客户端接收分布式去重集群的信息;包括节点的状态和节点的Token,返回
数据;
步骤S102:客户端接口数据情况请求,根据一致哈希环Range分布,利用Murmur3hash数
据过滤键,得到一个哈希环位置值X1,通过分布式过滤集群的range分布,计算X1所属的
Range,选择对应过滤节点,利用RPC向远端节点发送请求;...

【专利技术属性】
技术研发人员:曹志富
申请(专利权)人:湖南蚁坊软件有限公司
类型:发明
国别省市:湖南;43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1