一种基于iDistance的P2P空间数据查询方法及系统技术方案

技术编号:14015999 阅读:86 留言:0更新日期:2016-11-18 01:04
一种基于iDistance的P2P空间数据查询方法,其包括如下步骤:S1、构造基于分组Chord#的P2P空间数据查询系统:S2、构造基于节点簇的iDistance索引:将空间数据划分成若干个数据簇;将分组内所有节点的数据簇作为点数据,并将点数据的分布信息发送给本组的Route_peer,由Route_peer根据分布信息再次生成聚类并建立iDistance索引,形成节点簇;在子空间选取几个固定的参考点,让路由节点根据自身维护的数据簇距离固定参考点的远近来将其划分到不同的节点簇;S3、基于iDistance索引进行组内节点定位。

【技术实现步骤摘要】

本专利技术涉及数据查询
,特别涉及一种基于iDisdance的P2P空间数据查询方法及系统。
技术介绍
范围查询即检索与某个给定对象q的距离小于某个门限的所有数据。KNN查询即检索与某个给定对象q的距离最近的k个对象。由于范围查询和KNN查询涉及到大量的距离计算,而大部分查询算法都是针对集中式计算环境的,因此很容易形成性能瓶颈。P2P系统在规模性,可用性,可扩展性等方面表现出来的优势使得如何在P2P环境下支持空间查询成为近年来的研究热点并出现了一些研究成果。针对P2P环境下范围查询和KNN查询的有MCAN,M-Chord,SIMPEER等。其中MCAN是利用一种基于pivot的技术将所有数据对象映射到向量空间中,M-Chord是利用iDisdance将数据对象映射到一维空间。SIMPEER的主要思想是将系统分为若干个组,每个组由一个超级节点管理一定数量的数据节点。每个数据节点将本地数据的簇信息发送给本组的超级节点,并由它通过这些簇信息建立本组的iDistance索引。前两种方法会出现由于DHT造成的空间数据的物理特性丢失,而SIMPEER最大的不足在于每次查询都需要在超级节点之间多播,增加了系统的网络通信开销,使得系统难以扩展。
技术实现思路
有鉴于此,本专利技术提出一种能够能有效地过滤不必要的查询消息,从而降低空间查询的开销的基于iDisdance的P2P空间数据查询方法及系统。一种基于iDisdance的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首先根据节点簇的参考点与半径判断是否属于被搜索的范围;如果属于,则通过该节点簇中各数据簇的索引信息判断哪些数据簇需要被搜索,并将查询转发给这些数据簇的数据源节点。在本专利技术所述的基于iDisdance的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以广播的形式转发给组内所有节点以执行本地查询。这种方式虽然简单,但可能会造成大量不必要的消息开销,因此需要在分组内做进一步定位,裁剪掉不可能贡献最终结果的节点。本专利技术利用iDisdance来实现这一目的。在本专利技术所述的基于iDisdance的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组成。在本专利技术所述的基于iDisdance的P2P空间数据查询方法中,所述步骤S3包括:如果同时满足dist(q,Oi)-r≤pri和dist(q,Oi)+r≥dist_mini,即查询范围与该节点簇相交并且没有被不含数据簇的区域包含,则分析该节点簇中各数据簇的iDistance索引值。如果满足|dist(q,Oi)-dpj|≤r+drj,本文档来自技高网...
一种<a href="http://www.xjishu.com/zhuanli/55/201610428742.html" title="一种基于iDistance的P2P空间数据查询方法及系统原文来自X技术">基于iDistance的P2P空间数据查询方法及系统</a>

【技术保护点】
一种基于iDisdance的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首先根据节点簇的参考点与半径判断是否属于被搜索的范围;如果属于,则通过该节点簇中各数据簇的索引信息判断哪些数据簇需要被搜索,并将查询转发给这些数据簇的数据源节点。...

【技术特征摘要】
1.一种基于iDisdance的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所述的基于iDisdance的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所述的基于iDisdance的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所述的基于iDisdance的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.一种基于iDisdance的P2P空间数...

【专利技术属性】
技术研发人员:刘丹赵刚余河东王轩徐家臻
申请(专利权)人:华中师范大学
类型:发明
国别省市:湖北;42

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

1