CN106126552B - 一种基于iDistance的P2P空间数据查询方法及系统 - Google Patents
一种基于iDistance的P2P空间数据查询方法及系统 Download PDFInfo
- Publication number
- CN106126552B CN106126552B CN201610428742.3A CN201610428742A CN106126552B CN 106126552 B CN106126552 B CN 106126552B CN 201610428742 A CN201610428742 A CN 201610428742A CN 106126552 B CN106126552 B CN 106126552B
- Authority
- CN
- China
- Prior art keywords
- data
- aggregate
- peer
- node
- idistance
- 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
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/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9537—Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
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)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于iDistance的P2P空间数据查询方法,其包括如下步骤:S1、构造基于分组Chord#的P2P空间数据查询系统:S2、构造基于节点簇的iDistance索引:将空间数据划分成若干个数据簇;将分组内所有节点的数据簇作为点数据,并将点数据的分布信息发送给本组的Route_peer,由Route_peer根据分布信息再次生成聚类并建立iDistance索引,形成节点簇;在子空间选取几个固定的参考点,让路由节点根据自身维护的数据簇距离固定参考点的远近来将其划分到不同的节点簇;S3、基于iDistance索引进行组内节点定位。
Description
技术领域
本发明涉及数据查询技术领域,特别涉及一种基于iDistance的P2P空间数据查询方法及系统。
背景技术
范围查询即检索与某个给定对象q的距离小于某个门限的所有数据。KNN查询即检索与某个给定对象q的距离最近的k个对象。由于范围查询和KNN查询涉及到大量的距离计算,而大部分查询算法都是针对集中式计算环境的,因此很容易形成性能瓶颈。
P2P系统在规模性,可用性,可扩展性等方面表现出来的优势使得如何在P2P环境下支持空间查询成为近年来的研究热点并出现了一些研究成果。针对P2P环境下范围查询和KNN查询的有MCAN,M-Chord,SIMPEER等。其中MCAN是利用一种基于pivot的技术将所有数据对象映射到向量空间中,M-Chord是利用iDistance将数据对象映射到一维空间。SIMPEER的主要思想是将系统分为若干个组,每个组由一个超级节点管理一定数量的数据节点。每个数据节点将本地数据的簇信息发送给本组的超级节点,并由它通过这些簇信息建立本组的iDistance索引。前两种方法会出现由于DHT造成的空间数据的物理特性丢失,而SIMPEER最大的不足在于每次查询都需要在超级节点之间多播,增加了系统的网络通信开销,使得系统难以扩展。
发明内容
有鉴于此,本发明提出一种能够能有效地过滤不必要的查询消息,从而降低空间查询的开销的基于iDistance的P2P空间数据查询方法及系统。
一种基于iDistance的P2P空间数据查询方法,其包括如下步骤:
S1、构造基于分组Chord#的P2P空间数据查询系统:
针对每个数据源节点对应存储的空间数据维护一个或多个本地空间数据边界矩形LSD-MBR;将所有数据源节点依据功能划分为路由节点和数据节点,分别用Route_peer和Data_peer表示;其中Data_peer是指仅负责根据本地数据计算查询的数据源节点,Route_peer是指从Data_peer中挑选出来的负责根据索引信息路由查询消息的数据源节点;各数据源节点将LSD-MBR的中心作为数据源节点本身的代表点,用于通过代表点来决定节点在数据空间中的位置,从而决定在覆盖网络中的位置;
S2、构造基于节点簇的iDistance索引:将空间数据划分成若干个数据簇;将分组内所有节点的数据簇作为点数据,并将点数据的分布信息发送给本组的Route_peer,由Route_peer根据分布信息再次生成聚类并建立iDistance索引,形成节点簇;在子空间选取几个固定的参考点,让路由节点根据自身维护的数据簇距离固定参考点的远近来将其划分到不同的节点簇;
S3、基于iDistance索引进行组内节点定位:当一个以q为中心,r为半径的范围查询到达目的地分组后,由该分组的Route_peer首先根据节点簇的参考点与半径判断是否属于被搜索的范围;如果属于,则通过该节点簇中各数据簇的索引信息判断哪些数据簇需要被搜索,并将查询转发给这些数据簇的数据源节点。
在本发明所述的基于iDistance的P2P空间数据查询方法中,所述步骤S1包括:
(1)加入第一个数据源节点作为一个Route_peer;
(2)其他的数据源节点通过系统中任何一个已经存在的节点加入系统,并且它们都向Route_peer注册关于自己的地址、LSD-MBR、代表点信息;
(3)当Route_peer发现维护的包括自己在内的节点数量超过预先设置的某个门限值时Load_Max,对整个数据空间进行分裂,并从分裂出去的数据源节点中选择一个数据源节点作为Route_peer,并将该数据源节点的地址告知所有分裂出去的数据源节点;使得整个数据空间就一分为二,分别包含了若干数量的数据源节点;
(4)重复步骤(2)、(3),随着数据源节点的不断加入,数据空间最终被分裂成若干个子空间;
(5)利用层次化的环形结构Chord#来组织网络中的空间数据源节点;每当系统发生分裂产生新的子空间的时候,这个新的子空间的Route_peer就可以根据与CAN类似的ID分配方式得到一个ID,并据此按照Chord#的节点加入协议加入到系统中;最终由各个子空间的Route_peer形成一个顶层的环状网络。
上述系统能够较好地支持P2P空间点查询,范围查询,区域查询,KNN查询等。相关查询算法现有技术中有详细介绍,由于篇幅关系就不在这里赘述。根据以前的工作,当查询被转发给目的地分组后,将被分组的Route_peer以广播的形式转发给组内所有节点以执行本地查询。这种方式虽然简单,但可能会造成大量不必要的消息开销,因此需要在分组内做进一步定位,裁剪掉不可能贡献最终结果的节点。本发明利用iDistance来实现这一目的。
在本发明所述的基于iDistance的P2P空间数据查询方法中,所述步骤S2包括:
建立iDistance索引的基础是需要将成数据划分成若干个数据簇。在这里的数据簇分为两个层面,第一个层面是分组内数据节点根据自身存储的数据所维护的数据簇(数据簇的生成可以采用任何标准的聚类算法),第二个层面是针对分组内所有节点的数据簇生成的数据簇,即将分组内所有节点的数据簇看做点数据,并将它们的分布信息发送给本组的Route_peer,由Route_peer根据这些信息再次生成聚类并建立iDistance索引,本发明将其称为节点簇。这是一种基于数据的簇划分策略,其优势是能够更好地反映数据的真实分布,从而能够达到更好的裁剪搜索空间的目的。对于节点簇的划分,本发明采用的是基于空间的划分策略,即在子空间选取几个固定的参考点,让节点根据自身维护的数据簇距离固定参考点的远近来将其划分到不同的节点簇。如图1所示,子空间边界的中心O1,O2,O3,O4被选取为固定参考点,以它们为中心的4个虚线圆为节点簇,另外4个实线圆为数据簇。
当分组内所有数据簇依据若干个固定参考点划分为节点簇后,将数据簇看做集中环境下的点数据并据此建立iDistance索引。为了叙述方便,本发明做出如下定义:
如图2所示,将一个分组内的固定参考点个数为PeerClusterNum(在本文中PeerClusterNum为4),将固定参考点定义为Oi,节点簇半径定义为pri,将以Oi为中心,不含有数据簇的范围半径定义为dist_mini,1≤i≤PeerClusterNum;每个节点簇中数据簇的个数定义为dataClusterNum,数据簇参考点定义为Pj,数据簇半径定义为drj,数据簇参考点Pj与所属节点簇参考点之间的距离定义为dpj,在某一节点簇中的数据簇iDistance索引值Lj定义为i*c+dist(Pj,Oi)+drj,1≤j≤dataClusterNum,1≤i≤PeerClusterNum;Route_peer维护的B+树索引叶结点的每个入口entry由Lj,Pj,drj,dpj以及每个数据簇的所属数据源节点的地址IPj组成。
在本发明所述的基于iDistance的P2P空间数据查询方法中,所述步骤S3包括:
如果同时满足dist(q,Oi)-r≤pri和dist(q,Oi)+r≥dist_mini,即查询范围与该节点簇相交并且没有被不含数据簇的区域包含,则分析该节点簇中各数据簇的iDistance索引值。如果满足|dist(q,Oi)-dpj|≤r+drj,则说明该数据簇可能需要被搜索;在这一前提下,如果继续满足dist(Pj,q)≤r+drj,则确认该数据簇需要被搜索;如果该数据簇的拥有数据源节点不在PeerSet中,则将其地址信息加入PeerSet;最后将查询消息并行转发给PeerSet中的所有数据源节点。
举例来说,当某一数据源节点提出如图3所示的范围查询时,查询首先按照上述描述的范围查询算法被定位到分组1100。
假设分组1100的节点簇分布如图4所示。那么当该分组Route_peer的收到范围查询RangeQuery(r,q)后,依据dist(Oi,q)-r<=pri这一判定条件过滤掉了节点簇O2和O3。
以节点簇O3为例,假设其数据簇分布如图5所示。根据判定条件|dist(q,Oi)-dpj|≤r+drj,数据簇1,2,5都属于被考虑范围(与图中灰色部分相交的数据簇)。然后通过判定条件dist(Pj,q)≤r+drj进一步分析,得出数据簇3与查询范围相交,最后将查询转发给数据簇3所属的节点。
实验与分析
本发明所有的仿真实验都可以基于P2P仿真平台PlanetSim以及Java SDK 1.6,实验程序运行环境为Intel P4 3.0G,内存512M。
第一个测试为随机生成由210个数据源节点组成的覆盖网络,并将分组的大小设置为8。每个数据源节点存储由50个点数据组成的数据簇(以数据空间范围内的随机点为中心,半径为0.025)。然后随机选取数据空间范围内的查询点q,对以q为中心,半径分别为0.05,0.1,0.15,0.2,0.25的范围查询所花费的消息数进行测试。如图6所示,利用iDistance进行数据源节点定位的查询开销要优于组内广播泛洪方式。另外,随着查询范围的增加,前者的优势更为明显。这是因为查询范围的增加导致查询跨越了更多的分组,因此泛洪方式发送不必要的查询消息的可能性越大,通过iDistance方式过滤不必要的查询消息的可能性也越大(当然,并不一定是查询范围越大,过滤效果越好。比如当查询范围覆盖整个数据空间时,就不能减少查询开销)。
第二个测试为随机生由210个数据源节点组成的覆盖网络,并将分组的大小设置为8。每个节点存储由10个点数据组成的数据簇(以数据空间范围内的随机点为中心,半径为0.025)。然后随机选取数据空间范围内的查询点q,对以q为中心的KNN(k分别取值10,50,100,200)查询所花费的消息数进行测试。如图7所示,利用iDistance进行KNN查询定位的查询开销要优于组内广播泛洪方式。当k=10的时候,两者差别不大。这是由于当k的值较小的时候,R init(尽可能小的并且至少包含k个结果集的半径)的值也很小,因此涉及到的分组很少。随着k值的增加,差距逐渐扩大。但当k取值大于50后(即在q所属的分组范围内不能确定R init时),两者查询开销之间的差距有缩小的趋势。这是因为此时首先需要在一定数量的分组内进行多播以确定至少包括k个最近邻居的R init,而两者在这一过程中的查询开销没有差别。k值越大,则需要试探更多的分组才能确定R init,所花费的消息数在整个查询开销中的比例也随着增加,因此表现出差距缩小的趋势。
本发明还提供一种基于iDistance的P2P空间数据查询系统,其包括如下单元:
查询系统构造单元,用于构造基于分组Chord#的P2P空间数据查询系统:
针对每个数据源节点对应存储的空间数据维护一个或多个本地空间数据边界矩形LSD-MBR;将所有数据源节点依据功能划分为路由节点和数据节点,分别用Route_peer和Data_peer表示;其中Data_peer是指仅负责根据本地数据计算查询的数据源节点,Route_peer是指从Data_peer中挑选出来的负责根据索引信息路由查询消息的数据源节点;各数据源节点将LSD-MBR的中心作为数据源节点本身的代表点,用于通过代表点来决定节点在数据空间中的位置,从而决定在覆盖网络中的位置;
iDistance索引构造单元,用于构造基于节点簇的iDistance索引:将空间数据划分成若干个数据簇;将分组内所有节点的数据簇作为点数据,并将点数据的分布信息发送给本组的Route_peer,由Route_peer根据分布信息再次生成聚类并建立iDistance索引,形成节点簇;在子空间选取几个固定的参考点,让路由节点根据自身维护的数据簇距离固定参考点的远近来将其划分到不同的节点簇;
节点定位单元,用于基于iDistance索引进行组内节点定位:当一个以q为中心,r为半径的范围查询到达目的地分组后,由该分组的Route_peer首先根据节点簇的参考点与半径判断是否属于被搜索的范围;如果属于,则通过该节点簇中各数据簇的索引信息判断哪些数据簇需要被搜索,并将查询转发给这些数据簇的数据源节点。
在本发明所述的基于iDistance的P2P空间数据查询系统中,所述查询系统构造单元包括:
(1)加入第一个数据源节点作为一个Route_peer;
(2)其他的数据源节点通过系统中任何一个已经存在的节点加入系统,并且它们都向Route_peer注册关于自己的地址、LSD-MBR、代表点信息;
(3)当Route_peer发现维护的包括自己在内的节点数量超过预先设置的某个门限值时Load_Max,对整个数据空间进行分裂,并从分裂出去的数据源节点中选择一个数据源节点作为Route_peer,并将该数据源节点的地址告知所有分裂出去的数据源节点;使得整个数据空间就一分为二,分别包含了若干数量的数据源节点;
(4)重复(2)、(3),随着数据源节点的不断加入,数据空间最终被分裂成若干个子空间;
(5)利用层次化的环形结构Chord#来组织网络中的空间数据源节点;每当系统发生分裂产生新的子空间的时候,这个新的子空间的Route_peer就可以根据与CAN类似的ID分配方式得到一个ID,并据此按照Chord#的节点加入协议加入到系统中;最终由各个子空间的Route_peer形成一个顶层的环状网络。
在本发明所述的基于iDistance的P2P空间数据查询系统中,所述iDistance索引构造单元包括:
将一个分组内的固定参考点个数为PeerClusterNum,将固定参考点定义为Oi,节点簇半径定义为pri,将以Oi为中心,不含有数据簇的范围半径定义为dist_mini,1≤i≤PeerClusterNum;每个节点簇中数据簇的个数定义为dataClusterNum,数据簇参考点定义为Pj,数据簇半径定义为drj,数据簇参考点Pj与所属节点簇参考点之间的距离定义为dpj,在某一节点簇中的数据簇iDistance索引值Lj定义为i*c+dist(Pj,Oi)+drj,1≤j≤dataClusterNum,1≤i≤PeerClusterNum;Route_peer维护的B+树索引叶结点的每个入口entry由Lj,Pj,drj,dpj以及每个数据簇的所属数据源节点的地址IPj组成。
在本发明所述的基于iDistance的P2P空间数据查询系统中,所述节点定位单元包括:
如果同时满足dist(q,Oi)-r≤pri和dist(q,Oi)+r≥dist_mini,即查询范围与该节点簇相交并且没有被不含数据簇的区域包含,则分析该节点簇中各数据簇的iDistance索引值。如果满足|dist(q,Oi)-dpj|≤r+drj,则说明该数据簇可能需要被搜索;在这一前提下,如果继续满足dist(Pj,q)≤r+drj,则确认该数据簇需要被搜索;如果该数据簇的拥有数据源节点不在PeerSet中,则将其地址信息加入PeerSet;最后将查询消息并行转发给PeerSet中的所有数据源节点。
实施本发明提供的基于iDistance的P2P空间数据查询方法及系统具有以下有益效果:针对空间范围查询和KNN查询,提出了利用iDistance在分组内进行再次查询定位的方法。测试表明相比较在组内泛洪的方式,该方法能有效地过滤不必要的查询消息,从而降低空间查询的开销。针对KNN查询,随着k值的增加,差距逐渐扩大。但当k取值大于50后(即在q所属的分组范围内不能确定R init时),两者查询开销之间的差距有缩小的趋势。
附图说明
图1是基于空间的簇划分示意图;
图2是节点簇,数据簇示意图;
图3是范围查询示意图;
图4是节点簇过滤示意图;
图5是数据簇过滤示意图;
图6是采用节点定位与不采用节点定位的范围查询开销对比图;
图7采用节点定位与不采用节点定位的KNN查询开销对比图。
具体实施方式
如图1所示一种基于iDistance的P2P空间数据查询方法,其包括如下步骤:
S1、构造基于分组Chord#的P2P空间数据查询系统:
针对每个数据源节点对应存储的空间数据维护一个或多个本地空间数据边界矩形LSD-MBR;将所有数据源节点依据功能划分为路由节点和数据节点,分别用Route_peer和Data_peer表示;其中Data_peer是指仅负责根据本地数据计算查询的数据源节点,Route_peer是指从Data_peer中挑选出来的负责根据索引信息路由查询消息的数据源节点;各数据源节点将LSD-MBR的中心作为数据源节点本身的代表点,用于通过代表点来决定节点在数据空间中的位置,从而决定在覆盖网络中的位置;
S2、构造基于节点簇的iDistance索引:将空间数据划分成若干个数据簇;将分组内所有节点的数据簇作为点数据,并将点数据的分布信息发送给本组的Route_peer,由Route_peer根据分布信息再次生成聚类并建立iDistance索引,形成节点簇;在子空间选取几个固定的参考点,让路由节点根据自身维护的数据簇距离固定参考点的远近来将其划分到不同的节点簇;
S3、基于iDistance索引进行组内节点定位:当一个以q为中心,r为半径的范围查询到达目的地分组后,由该分组的Route_peer首先根据节点簇的参考点与半径判断是否属于被搜索的范围;如果属于,则通过该节点簇中各数据簇的索引信息判断哪些数据簇需要被搜索,并将查询转发给这些数据簇的数据源节点。
在本发明所述的基于iDistance的P2P空间数据查询方法中,所述步骤S1包括:
(1)加入第一个数据源节点作为一个Route_peer;
(2)其他的数据源节点通过系统中任何一个已经存在的节点加入系统,并且它们都向Route_peer注册关于自己的地址、LSD-MBR、代表点信息;
(3)当Route_peer发现维护的包括自己在内的节点数量超过预先设置的某个门限值时Load_Max,对整个数据空间进行分裂,并从分裂出去的数据源节点中选择一个数据源节点作为Route_peer,并将该数据源节点的地址告知所有分裂出去的数据源节点;使得整个数据空间就一分为二,分别包含了若干数量的数据源节点;
(4)重复步骤(2)、(3),随着数据源节点的不断加入,数据空间最终被分裂成若干个子空间;
(5)利用层次化的环形结构Chord#来组织网络中的空间数据源节点;每当系统发生分裂产生新的子空间的时候,这个新的子空间的Route_peer就可以根据与CAN类似的ID分配方式得到一个ID,并据此按照Chord#的节点加入协议加入到系统中;最终由各个子空间的Route_peer形成一个顶层的环状网络。
在本发明所述的基于iDistance的P2P空间数据查询方法中,所述步骤S2包括:
将一个分组内的固定参考点个数为PeerClusterNum,将固定参考点定义为Oi,节点簇半径定义为pri,将以Oi为中心,不含有数据簇的范围半径定义为dist_mini,1≤i≤PeerClusterNum;每个节点簇中数据簇的个数定义为dataClusterNum,数据簇参考点定义为Pj,数据簇半径定义为drj,数据簇参考点Pj与所属节点簇参考点之间的距离定义为dpj,在某一节点簇中的数据簇iDistance索引值Lj定义为i*c+dist(Pj,Oi)+drj,1≤j≤dataClusterNum,1≤i≤PeerClusterNum;Route_peer维护的B+树索引叶结点的每个入口entry由Lj,Pj,drj,dpj以及每个数据簇的所属数据源节点的地址IPj组成。
在本发明所述的基于iDistance的P2P空间数据查询方法中,所述步骤S3包括:
如果同时满足dist(q,Oi)-r≤pri和dist(q,Oi)+r≥dist_mini,即查询范围与该节点簇相交并且没有被不含数据簇的区域包含,则分析该节点簇中各数据簇的iDistance索引值。如果满足|dist(q,Oi)-dpj|≤r+drj,则说明该数据簇可能需要被搜索;在这一前提下,如果继续满足dist(Pj,q)≤r+drj,则确认该数据簇需要被搜索;如果该数据簇的拥有数据源节点不在PeerSet中,则将其地址信息加入PeerSet;最后将查询消息并行转发给PeerSet中的所有数据源节点。
本发明还提供一种基于iDistance的P2P空间数据查询系统,其包括如下单元:
查询系统构造单元,用于构造基于分组Chord#的P2P空间数据查询系统:
针对每个数据源节点对应存储的空间数据维护一个或多个本地空间数据边界矩形LSD-MBR;将所有数据源节点依据功能划分为路由节点和数据节点,分别用Route_peer和Data_peer表示;其中Data_peer是指仅负责根据本地数据计算查询的数据源节点,Route_peer是指从Data_peer中挑选出来的负责根据索引信息路由查询消息的数据源节点;各数据源节点将LSD-MBR的中心作为数据源节点本身的代表点,用于通过代表点来决定节点在数据空间中的位置,从而决定在覆盖网络中的位置;
iDistance索引构造单元,用于构造基于节点簇的iDistance索引:将空间数据划分成若干个数据簇;将分组内所有节点的数据簇作为点数据,并将点数据的分布信息发送给本组的Route_peer,由Route_peer根据分布信息再次生成聚类并建立iDistance索引,形成节点簇;在子空间选取几个固定的参考点,让路由节点根据自身维护的数据簇距离固定参考点的远近来将其划分到不同的节点簇;
节点定位单元,用于基于iDistance索引进行组内节点定位:当一个以q为中心,r为半径的范围查询到达目的地分组后,由该分组的Route_peer首先根据节点簇的参考点与半径判断是否属于被搜索的范围;如果属于,则通过该节点簇中各数据簇的索引信息判断哪些数据簇需要被搜索,并将查询转发给这些数据簇的数据源节点。
在本发明所述的基于iDistance的P2P空间数据查询系统中,所述查询系统构造单元包括:
(1)加入第一个数据源节点作为一个Route_peer;
(2)其他的数据源节点通过系统中任何一个已经存在的节点加入系统,并且它们都向Route_peer注册关于自己的地址、LSD-MBR、代表点信息;
(3)当Route_peer发现维护的包括自己在内的节点数量超过预先设置的某个门限值时Load_Max,对整个数据空间进行分裂,并从分裂出去的数据源节点中选择一个数据源节点作为Route_peer,并将该数据源节点的地址告知所有分裂出去的数据源节点;使得整个数据空间就一分为二,分别包含了若干数量的数据源节点;
(4)重复(2)、(3),随着数据源节点的不断加入,数据空间最终被分裂成若干个子空间;
(5)利用层次化的环形结构Chord#来组织网络中的空间数据源节点;每当系统发生分裂产生新的子空间的时候,这个新的子空间的Route_peer就可以根据与CAN类似的ID分配方式得到一个ID,并据此按照Chord#的节点加入协议加入到系统中;最终由各个子空间的Route_peer形成一个顶层的环状网络。
在本发明所述的基于iDistance的P2P空间数据查询系统中,所述iDistance索引构造单元包括:
将一个分组内的固定参考点个数为PeerClusterNum,将固定参考点定义为Oi,节点簇半径定义为pri,将以Oi为中心,不含有数据簇的范围半径定义为dist_mini,1≤i≤PeerClusterNum;每个节点簇中数据簇的个数定义为dataClusterNum,数据簇参考点定义为Pj,数据簇半径定义为drj,数据簇参考点Pj与所属节点簇参考点之间的距离定义为dpj,在某一节点簇中的数据簇iDistance索引值Lj定义为i*c+dist(Pj,Oi)+drj,1≤j≤dataClusterNum,1≤i≤PeerClusterNum;Route_peer维护的B+树索引叶结点的每个入口entry由Lj,Pj,drj,dpj以及每个数据簇的所属数据源节点的地址IPj组成。
在本发明所述的基于iDistance的P2P空间数据查询系统中,所述节点定位单元包括:
如果同时满足dist(q,Oi)-r≤pri和dist(q,Oi)+r≥dist_mini,即查询范围与该节点簇相交并且没有被不含数据簇的区域包含,则分析该节点簇中各数据簇的iDistance索引值。如果满足|dist(q,Oi)-dpj|≤r+drj,则说明该数据簇可能需要被搜索;在这一前提下,如果继续满足dist(Pj,q)≤r+drj,则确认该数据簇需要被搜索;如果该数据簇的拥有数据源节点不在PeerSet中,则将其地址信息加入PeerSet;最后将查询消息并行转发给PeerSet中的所有数据源节点。
实施本发明提供的基于iDistance的P2P空间数据查询方法及系统具有以下有益效果:针对空间范围查询和KNN查询,提出了利用iDistance在分组内进行再次查询定位的方法。测试表明相比较在组内泛洪的方式,该方法能有效地过滤不必要的查询消息,从而降低空间查询的开销。针对KNN查询,随着k值的增加,差距逐渐扩大。但当k取值大于50后(即在q所属的分组范围内不能确定R init时),两者查询开销之间的差距有缩小的趋势。
可以理解的是,对于本领域的普通技术人员来说,可以根据本发明的技术构思做出其它各种相应的改变与变形,而所有这些改变与变形都应属于本发明权利要求的保护范围。
Claims (8)
1.一种基于iDistance的P2P空间数据查询方法,其包括如下步骤:
S1、构造基于分组Chord#的P2P空间数据查询系统:
针对每个数据源节点对应存储的空间数据维护一个或多个本地空间数据边界矩形LSD-MBR;将所有数据源节点依据功能划分为路由节点和数据节点,分别用Route_peer和Data_peer表示;其中Data_peer是指仅负责根据本地数据计算查询的数据源节点,Route_peer是指从Data_peer中挑选出来的负责根据索引信息路由查询消息的数据源节点;各数据源节点将LSD-MBR的中心作为数据源节点本身的代表点,用于通过代表点来决定节点在数据空间中的位置,从而决定在覆盖网络中的位置;
S2、构造基于节点簇的iDistance索引:将空间数据划分成若干个数据簇;将分组内所有节点的数据簇作为点数据,并将点数据的分布信息发送给本组的Route_peer,由Route_peer根据分布信息再次生成聚类并建立iDistance索引,形成节点簇;在子空间选取几个固定的参考点,让路由节点根据自身维护的数据簇距离固定参考点的远近来将其划分到不同的节点簇;
S3、基于iDistance索引进行组内节点定位:当一个以q为中心,r为半径的范围查询到达目的地分组后,由该分组的Route_peer首先根据节点簇的参考点与半径判断是否属于被搜索的范围;如果属于,则通过该节点簇中各数据簇的索引信息判断哪些数据簇需要被搜索,并将查询转发给这些数据簇的数据源节点。
2.如权利要求1所述的基于iDistance的P2P空间数据查询方法,其特征在于,所述步骤S1包括:
(1)加入第一个数据源节点作为一个Route_peer;
(2)其他的数据源节点通过系统中任何一个已经存在的节点加入系统,并且它们都向Route_peer注册关于自己的地址、LSD-MBR、代表点信息;
(3)当Route_peer发现维护的包括自己在内的节点数量超过预先设置的某个门限值时Load_Max,对整个数据空间进行分裂,并从分裂出去的数据源节点中选择一个数据源节点作为Route_peer,并将该数据源节点的地址告知所有分裂出去的数据源节点;使得整个数据空间就一分为二,分别包含了若干数量的数据源节点;
(4)重复步骤(2)、(3),随着数据源节点的不断加入,数据空间最终被分裂成若干个子空间;
(5)利用层次化的环形结构Chord#来组织网络中的空间数据源节点;每当系统发生分裂产生新的子空间的时候,这个新的子空间的Route_peer就可以根据与CAN类似的ID分配方式得到一个ID,并据此按照Chord#的节点加入协议加入到系统中;最终由各个子空间的Route_peer形成一个顶层的环状网络。
3.如权利要求2所述的基于iDistance的P2P空间数据查询方法,其特征在于,所述步骤S2包括:
将一个分组内的固定参考点个数为PeerClusterNum,将固定参考点定义为Oi,节点簇半径定义为pri,将以Oi为中心,不含有数据簇的范围半径定义为dist_mini,1≤i≤PeerClusterNum;每个节点簇中数据簇的个数定义为dataClusterNum,数据簇参考点定义为Pj,数据簇半径定义为drj,数据簇参考点Pj与所属节点簇参考点之间的距离定义为dpj,在某一节点簇中的数据簇iDistance索引值Lj定义为i*c+dist(Pj,Oi)+drj,1≤j≤dataClusterNum,1≤i≤PeerClusterNum;Route_peer维护的B+树索引叶结点的每个入口entry由Lj,Pj,drj,dpj以及每个数据簇的所属数据源节点的地址IPj组成。
4.如权利要求3所述的基于iDistance的P2P空间数据查询方法,其特征在于,所述步骤S3包括:
如果同时满足dist(q,Oi)-r≤pri和dist(q,Oi)+r≥dist_mini,即查询范围与该节点簇相交并且没有被不含数据簇的区域包含,则分析该节点簇中各数据簇的iDistance索引值;如果满足|dist(q,Oi)-dpj|≤r+drj,则说明该数据簇可能需要被搜索;在这一前提下,如果继续满足dist(Pj,q)≤r+drj,则确认该数据簇需要被搜索;如果该数据簇的拥有数据源节点不在PeerSet中,则将其地址信息加入PeerSet;最后将查询消息并行转发给PeerSet中的所有数据源节点。
5.一种基于iDistance的P2P空间数据查询系统,其包括如下单元:
查询系统构造单元,用于构造基于分组Chord#的P2P空间数据查询系统:
针对每个数据源节点对应存储的空间数据维护一个或多个本地空间数据边界矩形LSD-MBR;将所有数据源节点依据功能划分为路由节点和数据节点,分别用Route_peer和Data_peer表示;其中Data_peer是指仅负责根据本地数据计算查询的数据源节点,Route_peer是指从Data_peer中挑选出来的负责根据索引信息路由查询消息的数据源节点;各数据源节点将LSD-MBR的中心作为数据源节点本身的代表点,用于通过代表点来决定节点在数据空间中的位置,从而决定在覆盖网络中的位置;
iDistance索引构造单元,用于构造基于节点簇的iDistance索引:将空间数据划分成若干个数据簇;将分组内所有节点的数据簇作为点数据,并将点数据的分布信息发送给本组的Route_peer,由Route_peer根据分布信息再次生成聚类并建立iDistance索引,形成节点簇;在子空间选取几个固定的参考点,让路由节点根据自身维护的数据簇距离固定参考点的远近来将其划分到不同的节点簇;
节点定位单元,用于基于iDistance索引进行组内节点定位:当一个以q为中心,r为半径的范围查询到达目的地分组后,由该分组的Route_peer首先根据节点簇的参考点与半径判断是否属于被搜索的范围;如果属于,则通过该节点簇中各数据簇的索引信息判断哪些数据簇需要被搜索,并将查询转发给这些数据簇的数据源节点。
6.如权利要求5所述的基于iDistance的P2P空间数据查询系统,其特征在于,所述查询系统构造单元包括:
(1)加入第一个数据源节点作为一个Route_peer;
(2)其他的数据源节点通过系统中任何一个已经存在的节点加入系统,并且它们都向Route_peer注册关于自己的地址、LSD-MBR、代表点信息;
(3)当Route_peer发现维护的包括自己在内的节点数量超过预先设置的某个门限值时Load_Max,对整个数据空间进行分裂,并从分裂出去的数据源节点中选择一个数据源节点作为Route_peer,并将该数据源节点的地址告知所有分裂出去的数据源节点;使得整个数据空间就一分为二,分别包含了若干数量的数据源节点;
(4)重复(2)、(3),随着数据源节点的不断加入,数据空间最终被分裂成若干个子空间;
(5)利用层次化的环形结构Chord#来组织网络中的空间数据源节点;每当系统发生分裂产生新的子空间的时候,这个新的子空间的Route_peer就可以根据与CAN类似的ID分配方式得到一个ID,并据此按照Chord#的节点加入协议加入到系统中;最终由各个子空间的Route_peer形成一个顶层的环状网络。
7.如权利要求6所述的基于iDistance的P2P空间数据查询系统,其特征在于,所述iDistance索引构造单元包括:
将一个分组内的固定参考点个数为PeerClusterNum,将固定参考点定义为Oi,节点簇半径定义为pri,将以Oi为中心,不含有数据簇的范围半径定义为dist_mini,1≤i≤PeerClusterNum;每个节点簇中数据簇的个数定义为dataClusterNum,数据簇参考点定义为Pj,数据簇半径定义为drj,数据簇参考点Pj与所属节点簇参考点之间的距离定义为dpj,在某一节点簇中的数据簇iDistance索引值Lj定义为i*c+dist(Pj,Oi)+drj,1≤j≤dataClusterNum,1≤i≤PeerClusterNum;Route_peer维护的B+树索引叶结点的每个入口entry由Lj,Pj,drj,dpj以及每个数据簇的所属数据源节点的地址IPj组成。
8.如权利要求7所述的基于iDistance的P2P空间数据查询系统,其特征在于,所述节点定位单元包括:
如果同时满足dist(q,Oi)-r≤pri和dist(q,Oi)+r≥dist_mini,即查询范围与该节点簇相交并且没有被不含数据簇的区域包含,则分析该节点簇中各数据簇的iDistance索引值;如果满足|dist(q,Oi)-dpj|≤r+drj,则说明该数据簇可能需要被搜索;在这一前提下,如果继续满足dist(Pj,q)≤r+drj,则确认该数据簇需要被搜索;如果该数据簇的拥有数据源节点不在PeerSet中,则将其地址信息加入PeerSet;最后将查询消息并行转发给PeerSet中的所有数据源节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610428742.3A CN106126552B (zh) | 2016-06-16 | 2016-06-16 | 一种基于iDistance的P2P空间数据查询方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610428742.3A CN106126552B (zh) | 2016-06-16 | 2016-06-16 | 一种基于iDistance的P2P空间数据查询方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106126552A CN106126552A (zh) | 2016-11-16 |
CN106126552B true CN106126552B (zh) | 2019-03-29 |
Family
ID=57469680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610428742.3A Active CN106126552B (zh) | 2016-06-16 | 2016-06-16 | 一种基于iDistance的P2P空间数据查询方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106126552B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115357609B (zh) * | 2022-10-24 | 2023-01-13 | 深圳比特微电子科技有限公司 | 物联网数据的处理方法、装置、设备和介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101710902A (zh) * | 2009-12-10 | 2010-05-19 | 北京邮电大学 | 一种无结构p2p网络及其数据查询方法和索引更新方法 |
CN102891872A (zh) * | 2011-07-20 | 2013-01-23 | 中兴通讯股份有限公司 | 一种对等网络中数据存储和查询的方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7139760B2 (en) * | 2003-01-27 | 2006-11-21 | Microsoft Corporation | Peer-to-peer record structure and query language for searching and discovery thereof |
US8015211B2 (en) * | 2004-04-21 | 2011-09-06 | Architecture Technology Corporation | Secure peer-to-peer object storage system |
-
2016
- 2016-06-16 CN CN201610428742.3A patent/CN106126552B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101710902A (zh) * | 2009-12-10 | 2010-05-19 | 北京邮电大学 | 一种无结构p2p网络及其数据查询方法和索引更新方法 |
CN102891872A (zh) * | 2011-07-20 | 2013-01-23 | 中兴通讯股份有限公司 | 一种对等网络中数据存储和查询的方法及系统 |
Non-Patent Citations (4)
Title |
---|
Bc—iDistance:基于位码的优化高维索引;梁俊杰;《小型微型计算机系统》;20070930;全文 |
P2P网络下的KNN查询;刘丹等;《计算机应用》;20100530;全文 |
一种基于P2P的空间数据索引方法;刘丹等;《计算机科学》;20120830;全文 |
对等网络环境中的空间数据索引方法研究;谢文君;《中国博士学位论文全文数据库基础科学辑》;20150515;全文 |
Also Published As
Publication number | Publication date |
---|---|
CN106126552A (zh) | 2016-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tam et al. | Using micro-genetic algorithms to improve localization in wireless sensor networks | |
CN106776796A (zh) | 基于云计算和大数据无人机任务规划系统和方法 | |
Wählisch et al. | Exposing a nation-centric view on the German internet–a change in perspective on AS-level | |
CN114090244A (zh) | 一种服务编排方法、装置、系统及存储介质 | |
CN107624249A (zh) | 用于通过电信网络的聚合数据实时计数人群中的人数的方法和系统 | |
Oliver et al. | A k-main routes approach to spatial network activity summarization: A summary of results | |
John et al. | Energy saving cluster head selection in wireless sensor networks for internet of things applications | |
CN106126552B (zh) | 一种基于iDistance的P2P空间数据查询方法及系统 | |
Zhang et al. | Clustering model based on node local density load balancing of wireless sensor network | |
Al Ridhawi et al. | An intelligent blockchain-assisted cooperative framework for industry 4.0 service management | |
CN102075577A (zh) | 消防远程监控通信系统 | |
Jovanovic et al. | Comparison of different topologies for island-based multi-colony ant algorithms for the minimum weight vertex cover problem | |
Kourtellis et al. | Leveraging peer centrality in the designof socially-informed peer-to-peer systems | |
Mohanasundaram et al. | Hybrid swarm intelligence optimization approach for optimal data storage position identification in wireless sensor networks | |
CN114595052A (zh) | 一种基于图分割算法的分布式通信负载均衡方法 | |
Wang et al. | A Reputation Management Framework for MANETs | |
Marcus et al. | Can spatial form support urban ecosystem services: Developing descriptions and measures to capture the spatial demands for pollination using the framework of space syntax | |
Fahad et al. | Optimization of vehicular node clustering process using evolutionary algorithms | |
Vegni et al. | Analysis of small-world features in vehicular social networks | |
Ali et al. | Self-stabilizing clustering algorithm in mobile ad hoc networks | |
Sharma et al. | Near-optimal location tracking using sensor networks | |
Jamont et al. | A self-organization process for communication management in embedded multiagent system | |
Wu et al. | Distributed indexing and data dissemination in large scale wireless sensor networks | |
Nagendran | Detection of selfish node in replica allocation for improving data accessibility in MANET | |
Chen et al. | Topology construction of backbone network based on machine learning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |