CN105653629B - 一种基于哈希环的分布式数据过滤方法 - Google Patents
一种基于哈希环的分布式数据过滤方法 Download PDFInfo
- Publication number
- CN105653629B CN105653629B CN201510995758.8A CN201510995758A CN105653629B CN 105653629 B CN105653629 B CN 105653629B CN 201510995758 A CN201510995758 A CN 201510995758A CN 105653629 B CN105653629 B CN 105653629B
- Authority
- CN
- China
- Prior art keywords
- data
- hash
- filter
- node
- cluster
- 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
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
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)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及数据过滤技术领域,特别是一种基于哈希环的分布式数据过滤方法,包括以下步骤,步骤S101:客户端接收分布式去重集群的信息;步骤S102:客户端接口数据情况请求;步骤S103:节点接收请求;步骤S104:数据过滤块定位,根据RPC发送的分区请求,hash取余后,定位到数据的数据过滤块;步骤S105:数据返回,对应的数据块,根据过滤器键,执行数据存在判断,返回对应状态,返回数据。采用上述结构后,本发明实现多租户功能,客户端可以根据业务需求,任意添加制定的类型的过滤器;实现过滤器的持久备份恢复,避免数据丢失;由于整个集群基于一致哈希环构建,过滤集群实现线性扩展;对于同一个过滤器,会构建多个子过滤器,降低误判率。
Description
技术领域
本发明涉及数据过滤技术领域,特别是一种基于哈希环的分布式数据过滤方法。
背景技术
布隆过滤器应用十分广泛,比如网页URL的去重,垃圾邮件的判别,集合重复元素的判别,查询加速,而布隆过滤器的使用是嵌套在应用程序中,易受应用程序本身的变化,导致出现过滤逻辑错误、已有判断数据丢失等异常情况。
中国发明专利申请CN 104601527 A公开了一种数据过滤方法,包括:接收数据生成终端发送的数据包,并根据存储的订阅信息确定对应的数据接收终端;根据确定的各个数据接收终端对应的数据过滤条件对数据包进行过滤,得到与各个数据接收终端对应的数据过滤结果;将各个数据过滤结果发送至对应的数据接收终端。此发明在接收到数据包并根据订阅信息确定该数据包对应的数据接收终端后,通过各个数据接收终端对应的数据顾虑条件对该数据包进行过滤,并将得到的各个数据过滤结果发送至对应的数据接收终端,从而达到无需数据接收终端侧的用户根据自身需求对该数据包进行过滤的目的;但是,此发明没有实现分布式数据过滤。
发明内容
本发明需要解决的技术问题提供一种基于哈希环的分布式数据过滤方法。
为解决上述的技术问题,本发明的一种基于哈希环的分布式数据过滤方法,包括以下步骤,
步骤S101:客户端接收分布式去重集群的信息;包括节点的状态和节点的Token,返回数据;
步骤S102:客户端接口数据情况请求,根据一致哈希环Range分布,利用Murmur3hash数据过滤键,得到一个哈希环位置值X1,通过分布式过滤集群的range分布,计算X1所属的Range,选择对应过滤节点,利用RPC向远端节点发送请求;
步骤S103:节点接收请求,根据RPC发送的过滤器要求,定位到相应的过滤器;
步骤S104:数据过滤块定位,根据RPC发送的分区请求,hash取余后,定位到数据的数据过滤块;
步骤S105:数据返回,对应的数据块,根据过滤器键,执行数据存在判断,返回对应状态,返回数据。
进一步的,所述步骤S101中返回数据格式如下:
更进一步的,所述步骤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中返回数据格式如下:
更进一步的,所述步骤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的范围。当需要过滤某个URL U1时,计算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;
步骤S1016:现有节点接收新增Token,所有节点重新计算Range;
步骤S1017:新增节点加入集群,并通知客户端节点、Token、Range变化。
虽然以上描述了本发明的具体实施方式,但是本领域熟练技术人员应当理解,这些仅是举例说明,可以对本实施方式作出多种变更或修改,而不背离发明的原理和实质,本发明的保护范围仅由所附权利要求书限定。
Claims (6)
1.一种基于哈希环的分布式数据过滤方法,其特征在于,包括以下步骤,
步骤S101:客户端接收分布式去重集群的信息;包括节点的状态和节点的Token,返回数据;
步骤S102:客户端接口数据情况请求,根据一致哈希环Range分布,利用Murmur3 hash数据过滤键,得到一个哈希环位置值X1,通过分布式过滤集群的Range分布,计算X1所属的Range,选择对应过滤节点,利用RPC向远端节点发送请求;
步骤S103:节点接收请求,根据RPC发送的过滤器要求,定位到相应的过滤器;
步骤S104:数据过滤块定位,根据RPC发送的分区请求,hash取余后,定位到数据的数据过滤块;
步骤S105:数据返回,对应的数据块,根据过滤器键,执行数据存在判断,返回对应状态,返回数据。
2.按照权利要求1所述的一种基于哈希环的分布式数据过滤方法,其特征在于,所述步骤S102中RPC向远端节点发送请求。
3.按照权利要求2所述的一种基于哈希环的分布式数据过滤方法,其特征在于:所述步骤S103中根据"filter_name",定位到对应的过滤器。
4.按照权利要求2所述的一种基于哈希环的分布式数据过滤方法,其特征在于:步骤S104中根据"partition_key",hash取余后,定位到数据的数据过滤块。
5.按照权利要求4所述的一种基于哈希环的分布式数据过滤方法,其特征在于:步骤S104中hash取余时的n为创建设置的块数。
6.按照权利要求1所述的一种基于哈希环的分布式数据过滤方法,其特征在于,所述步骤S101中集群节点加入或移除具体包括以下步骤,
步骤S1011:开始;
步骤S1012:判断集群是否有节点加入或移出,如果没有,则休眠等待,返回步骤S1011;如果有,则进入步骤S1013;
步骤S1013:各自节点锁定Token、Range分布全局表;
步骤S1014:新增节点随机产生新Token;
步骤S1015:判断新Token集群中是否已经存在,如果存在,则返回步骤S1014;如果不存在,则进入步骤S1016;
步骤S1016:现有节点接收新增Token,所有节点重新计算Range;
步骤S1017:新增节点加入集群,并通知客户端节点、Token、Range变化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510995758.8A CN105653629B (zh) | 2015-12-28 | 2015-12-28 | 一种基于哈希环的分布式数据过滤方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510995758.8A CN105653629B (zh) | 2015-12-28 | 2015-12-28 | 一种基于哈希环的分布式数据过滤方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105653629A CN105653629A (zh) | 2016-06-08 |
CN105653629B true CN105653629B (zh) | 2020-03-13 |
Family
ID=56477737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510995758.8A Active CN105653629B (zh) | 2015-12-28 | 2015-12-28 | 一种基于哈希环的分布式数据过滤方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105653629B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106446273A (zh) * | 2016-10-21 | 2017-02-22 | 天津海量信息技术股份有限公司 | 基于rpc实现的ES全局数据消重方法 |
CN108009019B (zh) * | 2016-10-29 | 2021-06-22 | 网宿科技股份有限公司 | 分布式数据定位实例的方法、客户端及分布式计算系统 |
CN107798106B (zh) * | 2017-10-31 | 2023-04-18 | 广东思域信息科技有限公司 | 一种分布式爬虫系统中的url去重方法 |
CN110046164B (zh) * | 2019-04-16 | 2021-07-02 | 中国人民解放军国防科技大学 | 一致性布谷过滤器的操作方法 |
CN112069169B (zh) * | 2020-07-30 | 2023-08-15 | 北京奇艺世纪科技有限公司 | 区块数据存储方法、装置、电子设备及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102843403A (zh) * | 2011-06-23 | 2012-12-26 | 盛大计算机(上海)有限公司 | 基于分布式文件系统的文件处理方法、系统及客户端 |
CN102999571A (zh) * | 2012-11-09 | 2013-03-27 | 深圳市宜搜科技发展有限公司 | 一种集群中单机多节点的实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8972488B2 (en) * | 2010-09-28 | 2015-03-03 | Redis Labs Ltd. | System, methods, and media for providing in-memory non-relational databases |
-
2015
- 2015-12-28 CN CN201510995758.8A patent/CN105653629B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102843403A (zh) * | 2011-06-23 | 2012-12-26 | 盛大计算机(上海)有限公司 | 基于分布式文件系统的文件处理方法、系统及客户端 |
CN102999571A (zh) * | 2012-11-09 | 2013-03-27 | 深圳市宜搜科技发展有限公司 | 一种集群中单机多节点的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105653629A (zh) | 2016-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105653629B (zh) | 一种基于哈希环的分布式数据过滤方法 | |
CN102906751B (zh) | 一种数据存储、数据查询的方法及装置 | |
AU2010265607A1 (en) | Method for finding, updating and synchronizing modified record item and data synchronizing device | |
JP5585062B2 (ja) | 情報処理装置、情報処理方法、データ管理サーバおよびデータ同期システム | |
KR20190067158A (ko) | 블록체인 블록 데이터의 아카이빙 방법, 장치 및 조회 방법, 장치 | |
US20140195482A1 (en) | Data synchronization in a storage network | |
CN107977396B (zh) | 一种KeyValue数据库的数据表的更新方法与表数据更新装置 | |
CN111723073B (zh) | 数据存储处理方法、装置、处理系统以及存储介质 | |
WO2013163813A1 (zh) | 重复数据删除方法及装置 | |
WO2013097379A1 (zh) | 数据备份方法及装置 | |
CN103873507A (zh) | 数据分块上传与存储系统及方法 | |
CN103188305B (zh) | 一种多线程断点续传方法及系统 | |
CN104317676A (zh) | 一种数据备份容灾方法 | |
CN105956068A (zh) | 基于分布式数据库的网页url去重方法 | |
CN102200972A (zh) | 一种数据库维护方法和设备 | |
WO2015157904A1 (zh) | 一种文件同步方法、服务器及终端 | |
CN111125065B (zh) | 可视化数据同步方法、系统、终端和计算机可读存储介质 | |
CN105447054A (zh) | 一种数据库的数据同步方法、装置及系统 | |
CN103645970A (zh) | 一种远程复制多快照间增量去重的实现方法及装置 | |
CN103581358A (zh) | Ip地址列表匹配方法及装置 | |
CN101557380A (zh) | 数据同步方法、客户端以及服务器 | |
CN102780769A (zh) | 一种基于云计算平台的容灾存储方法 | |
CN102932476B (zh) | 网络存储同步系统 | |
CN105183582A (zh) | 数据备份方法及装置 | |
CN103117883B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 410013 room 605, floor 6, unit n, building A4, Lugu Yuyuan, No. 27, Wenxuan Road, Changsha hi tech Development Zone, Changsha City, Hunan Province Applicant after: Hunan ant software Limited by Share Ltd Address before: 410003 Hunan province Changsha Lugu high tech Zone Business Plaza building 607 room A4 Applicant before: Hunan Yi Fang softcom limited |
|
GR01 | Patent grant | ||
GR01 | Patent grant |