首页> 中国专利> 一种支持分布式多集群计算环境的多维属性范围查询的方法

一种支持分布式多集群计算环境的多维属性范围查询的方法

摘要

本发明涉及一种支持分布式多集群计算环境的多维属性范围查询方法来支持共享和检索历史性能数据,该方法在分布式哈希表(DistributedHash Table)基础上使用向量索引来解决数字型属性的范围查询,通过对查询结果集进行交集操作来解决多维属性的简单查询,实验结果证明,该方法具有比较好的可扩展性。

著录项

  • 公开/公告号CN101719155A

    专利类型发明专利

  • 公开/公告日2010-06-02

    原文格式PDF

  • 申请/专利权人 北京航空航天大学;

    申请/专利号CN200910244347.X

  • 发明设计人 胡凯;陈陆佳;张新宇;丁毅;张伟;

    申请日2009-12-29

  • 分类号G06F17/30(20060101);

  • 代理机构

  • 代理人

  • 地址 100191 北京市海淀区学院路37号

  • 入库时间 2023-12-17 23:57:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-02-22

    未缴年费专利权终止 IPC(主分类):G06F17/30 授权公告日:20121121 终止日期:20151229 申请日:20091229

    专利权的终止

  • 2012-11-21

    授权

    授权

  • 2011-06-08

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20091229

    实质审查的生效

  • 2010-06-02

    公开

    公开

说明书

技术领域

本发明设计了一种适合分布式多集群计算环境的多维属性范围查询方法来支持共享和检索历史性能数据,该方法使用向量索引来解决数字型属性的范围查询,通过对查询结果集进行交集操作来解决多维属性的简单查询。

背景技术

在分布式多集群计算环境中允许集群间共享性能数据以便提高性能分析的效率或者进行多实验分析,这就需要能够在这个分布式多集群环境中搜索查询历史数据的方法。

目前,在对等网络中实现资源查找的方法中基于分布式哈希表(Distributed Hash Table)的查询方法是一种有效率的查询方法。但是传统的基于DHT的查询方法是面向精确查询的。为了在分布式多集群计算环境中共享实验(并行作业在特定环境下的一次执行)数据,就要实现多维属性范围查询方法,支持性能数据的查询工作。例如,一次实验产生的性能数据资源属性可以描述为:NodeNumbers=6,CPUType=Intel,CPUSpeed=3.2GHz,而一次查询的描述可能为:5<=NodeNumbers<=15andCPUType=Intel and CPUSpeed>=2GHz。本发明就是要找到一种映射方法f,将资源属性空间S上的点P(s1,s2,…sm)(m是资源属性的个数,si,(1≤i≤m)为资源的一种属性)映射为散列空间上的一点Q(x),其中0≤x≤2t-1(t是散列值的bit位数),并且设计出多维属性的查询方法。

近来,有人提出将Chord的资源定位方法应用于网格系统。对于数字型属性通过重新定义散列函数来分配标识符,虽然解决了传统Chord资源定位方法的不足,实现简单,但该方法本质上只使用了一种属性作为需要的散列属性,即所有查询必须含有该属性,在支配属性定位的基础上再比对其它属性;当资源在稠密节点上稀疏分布时,查询效率较差。

基于树状向量索引的范围属性查询方法具有较好的查询性能和可扩展性,并且通常情况下可以准确返回所有匹配的结果,但是这种方法如果直接用在Chord系统上会导致索引信息的环状递归更新,造成所有节点上的索引信息完全相同,从而不能正常进行查询;此外,由于查询只能从邻居节点收集信息,所以当更新节点距离查询请求节点较远时,查询请求节点需要较长时间才能获得准确的数据。

发明内容

本发明设计了一种多维属性范围查询方法,该方法可以在分布式多集群计算环境中支持共享和检索历史性能数据,该方法使用向量索引来解决数字型属性的范围查询,通过对查询结果集进行交集操作来解决多维属性的简单查询。

在数字型属性范围查询中,将查询定义为Q:=QorQ|D[A]∈[umin,umax],其中D[A]表示属性A的取值。在使用属性值之前,将属性值所在的区间划分为k个小区间,用k位二进制向量编码。将值D[A]编码为一个k位的二进制向量BitIdx(D[A])=(b0,b1,…,bk-1),对每个i=0,1,…,k-2,仅当D[A]∈[ui,ui+1)时,bi=1,i=k-1时,仅当D[A]∈[ui,ui+1]时,bi=1。K[A]为属性A的k比特的标识符。UnitBitIdx[i]为第i位为1的k阶单位向量,Nk=successor(H(K[A]+UnitBitIdx[i]))称为属性A的第i个关键节点,该节点维护了属性A属于区间i的向量索引表,其中successor(P)为指向P的后继结点的后继函数。

数字型属性范围查询方法有以下步骤:

步骤一、查询请求节点N初始化资源集合W;

步骤二、将需要查询的属性A的值D[A]编码为一个k位的二进制向量BitIdx(D[A])=(b0,b1,…,bk-1);

步骤三、当0≤i≤k-1时,循环处理以下步骤:

计算b=UnitBitIdx[i]&BitIdx(D[A]),如果b不为0,求出属性A的第b个关键节点Nk=successor(H(K[A]+b)),将包含向量UnitBitIdx[i]的节点查询请求路由转发到节点Nk上,

Nk初始化资源集合W’,在节点Nk上使用K[A]和UnitBitIdx[i]在向量索引表中找到对应的Set将其中的元素加入集合W’,Nk将资源集合W’返回给N,合并到集合W中;

在多维属性查询中,将多维属性查询定义为Q:=Q and Q|A=str|A∈[umin,umax],其中D[A]表示属性A的取值,str为相应属性要查询的值。

多维属性范围查询的方法有以下步骤:

步骤一、节点N接到多维查询请求Q,初始化资源集合W;

步骤二、将多维复杂查询Q分解为单属性的简单查询Q1,Q2,……Qn,j=1,2…,n;

步骤三、当j=1,2…,n循环处理以下步骤:

处理简单查询Qj,如果Qj对应A=str的简单查询,根据哈希散列函数H(K[A]=str)找到资源集合W’;如果Qj对应数字型属性范围查询,使用数字型属性范围查询方法进行处理得到资源集合W’;

如果集合W为空,则将W’赋给集合W,否则求集合W’与W的交集赋给集合W;

本发明的多维属性范围查询方法的优点在于:

1.该方法使用向量索引来解决数字型属性的范围查询,弥补了分布式哈希表查询方法面向精确查询的不足,而支持属性值的范围查询。

2.实验证明,该方法无论在查询范围或者还是在节点规模方面都比现有方法具有更好的性能和更高的可扩展性。

附图说明

图1数字型属性范围查询方法流程图

图2范围查询方法实例

图3多维属性范围查询方法流程图

图4多维属性范围查询实例

附表说明

图5属性A在各节点上的区间向量索引表

具体实施方式

下面将结合附图对本发明作进一步的说明:

本方法将具有N个节点的P2P系统表示为集合P={P1,P2,…,PN},将节点组织成覆盖网络,路由信息在单独的连接上传播,并且维护一个节点集合P的无向生成树。覆盖网络只用来路由查询和更新信息,而节点间可以直接通讯。

本方法通过向量索引来发布、存储和查询资源信息。在数字型属性范围查询中,将查询定义为Q:=Q or Q|D[A]∈[umin,umax],其中D[A]表示属性A的取值。

在使用属性值之前,将属性值所在的区间划分为k个小区间,用k位二进制向量编码。例如,数字型属性A的值域为[umin,umax],选择k+1个分割点umin=uo<u1<…<uk=umax将[umin,umax]划分为k个相连的区间[ui,ui+1),i=0,1,…,k-2和[ui,ui+1],i=k-1。每种属性都需要定义一种值域的划分,将值D[A]编码为一个k位的二进制向量BitIdx(D[A])=(b0,b1,…,bk-1),对每个i=0,1,…,k-2,当且仅当D[A]∈[ui,ui+1)时,bi=1,i=k-1时,当且仅当D[A]∈[ui,ui+1]时,bi=1。K[A]为属性A的k比特的标识符。UnitBitIdx[i]为第i位为1的单位向量,例如,UnitBitIdx[0]=(1,0,…,0),UnitBitIdx[1]=(0,1,…,0),……,UnitBitIdx[k-1]=(0,0,…,1),Nk=successor(H(K[A]+UnitBitIdx[i]))称为属性A的第i个关键节点,该节点维护了属性A属于区间i的向量索引表,successor(P)为指向P的后继结点的后继函数。向量索引表的表项有:AttrIdent:属性标识符,能够在系统中唯一确定一个属性的值;UnitBitIdx:单位向量,对应k位的单位向量;Set:资源集合,包含对应单位向量索引的资源。

数字型属性范围查询方法如下:

a.查询请求节点N初始化资源集合W;

b.将需要查询的属性A的值D[A]编码为一个k位的二进制向量BitIdx(D[A])=(b0,b1,…bk-1);

c.当0≤i≤k-1时,循环处理以下步骤:

计算b=UnitBitIdx[i]&BitIdx(D[A]),如果b不为0,求出属性A的第b个关键节点Nk=successor(H(K[A]+b)),将包含向量UnitBitIdx[i]的节点查询请求路由转发到节点Nk上,

Nk初始化资源集合W’,在节点Nk上使用K[A]和UnitBitIdx[i]在向量索引表中找到对应的Set将其中的元素加入集合W’,Nk将资源集合W’返回给N,合并到集合W中;

方法流程图如图所示。

方法实例如图所示,设资源的属性A值域为[-180,180],使用12位二进制向量编码,并且H(K[A]+’001000000000’)=13,H(K[A]+’000100000000’)=80,H(K[A]+’000010000000’)=57,H(K[A]+’000001000000’)=0。属性A的相关的区间向量索引表如图5所示。当N要查询D[A]∈[1,110]的资源时,首先初始化资源节点集合P以及资源集合W;将D[A]编码,编码后的向量索引为BitIdx(D[A])=(0,0,1,1,1,1,0,0,0,0,0,0);依照Chord单关键字的查找方法根据H(K[A])找到属性A的关键节点Nk,在这里将包含UnitBitIdx[i]的节点查询请求发送给Nk;Nk=successor(13)=N15,Nk=successor(80)=N89,Nk=successor(57)=N63和Nk=successor(0)=N1;在节点N15上以“Attribute A”和001000000000在向量索引表中查找Set,找到资源R2和资源R1,将这两个节点加入集合W’;N15将资源集合W’返回给查询请求节点N,由N将W’合并到集合W中;节点N89和N63上均返回空集合;在节点N1上以“Attribute A”和000001000000在向量索引表中查找Set,找到了资源R2,将这个资源加入集合W’;N1将资源集合W’返回给查询请求节点N,由N将W’合并到集合W中,此时,查询过程终止。

该查找方法对于一次u∈[x,y]查询的时间复杂度为O(mlogN),其中m为需要查询的区间个数,O(logN)为查询节点Nk需要的时间。

在多维属性查询中,将多维属性查询定义为Q:=Q and Q|A=str|A∈[umin,umax],其中D[A]表示属性A的取值。

多维属性查询方法如下:

a.节点N接到多维查询请求Q,初始化资源集合W;

b.将多维复杂查询Q分解为单属性的简单查询Q1,Q2,……Qn

c.当j=1,2…,n循环处理以下步骤:

处理简单查询Qj,如果Qj对应A=str的简单查询,根据哈希散列函数H(K[A]=str)找到资源集合W’;如果Qj对应数字型属性范围查询,使用数字型属性范围查询方法进行处理得到资源集合W’;

如果集合W为空,则将W’赋给集合W,否则求集合W’与W的交集赋给集合W。

方法流程图如图3所示。

方法实例如图4所示,设节点N接收到多维查询请求Q:A∈[1,110]andB=′example1′,将查询Q  分解为Q1:A∈[1,110]和Q2:B=′example1′,处理简单查询Q1,得到资源集合W’包括资源R2和资源R1,此时集合W为空,将节点R2和节点R1放入集合W中;然后按照传统的Chord查询方法根据H(K[B]=′example1′)=46向节点N50查询得到资源集合W’包含资源R2,由于此时资源集合W不为空,求集合W’和W的交集得到资源R2放入集合W中;此时查询过程终止。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号