法律状态公告日
法律状态信息
法律状态
2011-06-01
授权
授权
2010-04-28
实质审查的生效 IPC(主分类):G06F17/30 申请日:20090918
实质审查的生效
2010-03-10
公开
公开
技术领域
本发明涉及多媒体,web等高维数据映射和查询技术,超级节点P2P网络技术,特别是涉及一种P2P环境中的窗口查询方法。
背景技术
随着多媒体,web等技术的发展,新型的数据库运用应运而生,包括基于内容的视频、音频检索,流数据的匹配,数字图像处理,文本处理等。对这些高维数据的查询和匹配基本操作可以总结为三类:相似范围查询,k-NN(k-Nearest Neighbor)查询,基于窗口的范围查询。其中相似范围查询和k-NN查询主要是用在高维数据库中查找相似的对象(例如查找离学校最近的10个银行或者1公里以内的公交站牌等)。基于窗口的范围查询,主要是针对数据的属性来过滤出窗口数据,然后针对这些有用的数据做进一步分析。比如在传感器网络中,数据或者事件等都由多个属性值构成(温度,光感属性等),而这些属性值都有一个值域范围,因此一个非常有用的查询便是针对各个属性值查询感兴趣的数据或者事件(例如:找出所有的传感器数据中满足温度在40°~50°之间,光感强度在5~10之间的数据)。
随着P2P网络的兴起,针对高维数据的分布式查询与索引的需求更加明显,但是大多数的应用和研究还局限在结构化P2P等网络中,而导致了节点不能够自治管理数据等缺点。当前的技术着重利用分布式网络的路由信息来支持窗口查询,更适用于DHT网络中,因此,需要针对更加健壮和自由的P2P网络的特点提出有效的窗口查询技术。
发明内容
本发明的目的在于提供一种高效的P2P环境中的窗口查询方法。
本发明解决其技术问题采用的技术方案是:
(1)、该方法的步骤如下:
1)选择具备集中式网络和完全无结构化网络的超级节点P2P网络作为底层网络基础;
2)在每个单独的网络节点上,数据通过一种降维算法映射到一维空间;
3)在超级节点上构建数据的统计信息表以及构造网络查询树;
4)当一个节点P发起查询请求时,查询q被发送到节点P所在的超级节点,超级节点在内部完成查询;
5)超级节点查询其他所连接的超级节点的数据,并返回结果。
(2)、所述步骤1)中选用的P2P网络是超级节点P2P网络,保存了所管辖的节点的信息以及与其相连的超级节点的路由信息,能够支持复杂的分布式计算,能够避免集中式网络中的单点失败和可扩展性问题。
(3)、所述步骤2)使用iMinMax降维算法,将一个高维数据点x映射到其一维空间的最大值或最小值。
(4)、所述步骤3)负责两个任务:
1)在每个超级节点上,构建两类数据的统计信息表:a)超级节点内部管理的节点P的统计信息;b)整个P2P网络中,与超级节点相连的其他超级节点管理的数据的统计信息;
2)针对网络中的所有超级节点构成的网络图,构建一棵查询树,根据此查询树来访问P2P网络中的超级节点,避免网络泛洪。
(5)、所述步骤4)中查询首先发送到节点P所属的超级节点上,然后通过(4)中步骤1)中步骤a)建立的超级节点内部统计信息来查询与超级节点相连的所有节点Pi的数据。
(6)、所述步骤5)通过(4)中步骤2)中建立起来的网络查询树以及(4)中步骤1)中步骤b)构建的数据统计信息,来查询其他的超级节点,最终返回整个网络中的满足条件的结果数据,最终完成整个网络的查询。
本发明具有的有益效果是:
充分利用了集中式环境下的查询技术以及P2P网络的现有研究和实现成果,基于已有集中式的查询算法的扩展可以非常方便快捷的提供P2P下的查询能力,同时,避免了网络的泛洪,提供最好的性能。
附图说明
图1是超级节点P2P网络示意图。
图2是高维数据映射到一维示意图。
图3是超级节点统计信息示意图。
具体实施方式
现结合附图和具体实施例对本发明作进一步说明。
本发明具体实施过程和工作原理如下:
1)选择具备集中式网络和完全无结构化网络的超级节点(super-peer)P2P网络作为底层网络基础;
2)在每个单独的网络节点上,数据通过一种降维算法映射到一维空间;
3)在超级节点上构建数据的统计信息表以及构造网络查询树;
4)当一个节点P发起查询请求时,查询q被发送到节点P所在的超级节点,超级节点在内部完成查询;
5)超级节点查询其他所连接的超级节点的数据,并返回结果。
步骤1)中的网络结构如图1所示,每个超级节点SP管理P1到Pn个底层节点,超级节点之间互相连接构成整个P2P网络,原始数据存在底层节点上,超级节点SP仅仅存储统计信息等数据。
步骤2)中的数据空间表示为:考虑一个维度为d的数据空间,数据每个维度的值范围是[0,1],因此一个d维的点所在的范围空间可以表示为([0,1],[0,1],…[0,1],[0,1])。将一个数据点x以及其最大最小值表示为式(1):
x=(x 1,x 2...,xd)
x∈([0,1]1,[0,1]2...[0,1]d)
将窗口查询q表示为式(2),将窗口查询结果集表示为window(q)。
q=([x11,x12],...[xd1,xd2]) (2)
步骤2)中选用的降维算法是iMinMax,数据映射式如(3)所示,将数据映射到所有维度的最大值或者最小值,其中θ表示用户指定的参数,c表示一个常量,通常取值为1,dmin表示数据的最小值的维度,dmax表示数据的最大值的维度。
同时,iMinMax将窗口查询映射到式(4),其中qj表示窗口查询q的第j个维度上的分量。
映射示意图如图2所示,例如,图2(a)中的数据B(0.2,0.7)通过式(3)映射为值1.2。因此,数据经过算法映射后,变成了1维数据,可以用B+树来索引和查询,图2(b)表示查询时需要查询的范围。
步骤3)中主要包含以下内容:
1)超级节点根据映射后的一维数据来构建统计信息。由图2(a)可知,数据都映射到Range(i)=[i*c,i*c+1]1=<i<=d)区间内,对每一个i(维度),分为RangeA(i)=[i*c,i*c+0.5]和RangeB(i)=[i*c+0.5,i*c+1]。根据iMinMax的思想,Range(i)的值大部分会分布在区间的两边,因此,取RangeA(i)和RangeB(i)的范围来构成统计信息。比如在图2(a)中,2维的统计信息为:2:(2.15,2.2),(2.75,2.8)。对节点P,所有维度的信息组合成一个节点统计信息:
2)由于超级节点SP之间连接是一个图结构,为了查询的方便以及避免网络的泛洪,在初始化时,构建一个超级节点网络树,如图3所示。
3)针对窗口查询,为了事先能够判断一个超级节点所在的子树是否含有满足条件的数据,需要对超级节点所在的子树的所有数据做一个统计信息表,用SPST表示此表,并保存在超级节点中,如图3所示。对于叶子节点如C,D,E,SPST只包含一项,就是所有节点Pi(1=<i<=n)统计信息的并集。针对非叶子节点B,统计信息包含儿子节点的统计信息,以及自己的统计信息,并且最后将这两类信息汇总为Btotal,然后将Btotal发送给其父亲节点。
步骤4)中查询q被发送到P所在的超级节点。根据存储在超级节点中的数据的统计信息表来判断包含数据的节点Pi,然后将查询发送到包含数据的节点Pi,在Pi上完成查询工作,并返回结果。
步骤5)中当超级节点在内部完成查询时,然后比较SPST,将查询发送给含有数据的儿子节点(也是超级节点,根据图3的网络树),最后将查询发送给超级节点的父亲节点,由父亲节点来处理剩下的子树查询,最终返回查询结果。
机译: 基于P2P对等的移动自组织环境中P2P搜索多属性对象的方法和系统
机译: 用于将具有第一主题图形显示的第一桌面环境中的至少一个窗口并入具有第二主题图形显示的第二桌面环境中的至少一个窗口的方法和系统
机译: 在P2P环境中,特别是在分布式数据存储中处理组共享的方法和系统