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

文档序号:6585519阅读:136来源:国知局
专利名称:一种支持分布式多集群计算环境的多维属性范围查询的方法
技术领域
本发明设计了一种适合分布式多集群计算环境的多维属性范围查询方法来支持
共享和检索历史性能数据,该方法使用向量索引来解决数字型属性的范围查询,通过对查 询结果集进行交集操作来解决多维属性的简单查询。
背景技术
在分布式多集群计算环境中允许集群间共享性能数据以便提高性能分析的效率 或者进行多实验分析,这就需要能够在这个分布式多集群环境中搜索查询历史数据的方 法。 目前,在对等网络中实现资源查找的方法中基于分布式哈希表(Distributed Hash Table)的查询方法是一种有效率的查询方法。但是传统的基于DHT的查询方法是面 向精确查询的。为了在分布式多集群计算环境中共享实验(并行作业在特定环境下的一次 执行)数据,就要实现多维属性范围查询方法,支持性能数据的查询工作。例如,一次实验 产生的性能数据资源属性可以描述为NodeNumbers = 6, CPUType = Intel, CPUSpeed = 3. 2GHz,而一次查询的描述可能为5 <= NodeNumbers <= 15andCPUType = Intel and CPUSpeed >= 2GHz。本发明就是要找到一种映射方法f,将资源属性空间S上的点P(Sl, s2,…sj (m是资源属性的个数,Si, (1《i《m)为资源的一种属性)映射为散列空间上的 一点Q(x),其中0《x《2t-l (t是散列值的bit位数),并且设计出多维属性的查询方法。
近来,有人提出将Chord的资源定位方法应用于网格系统。对于数字型属性通过 重新定义散列函数来分配标识符,虽然解决了传统Chord资源定位方法的不足,实现简单, 但该方法本质上只使用了一种属性作为需要的散列属性,即所有查询必须含有该属性,在 支配属性定位的基础上再比对其它属性;当资源在稠密节点上稀疏分布时,查询效率较差。
基于树状向量索引的范围属性查询方法具有较好的查询性能和可扩展性,并且通 常情况下可以准确返回所有匹配的结果,但是这种方法如果直接用在Chord系统上会导致 索引信息的环状递归更新,造成所有节点上的索引信息完全相同,从而不能正常进行查询; 此外,由于查询只能从邻居节点收集信息,所以当更新节点距离查询请求节点较远时,查询 请求节点需要较长时间才能获得准确的数据。

发明内容
本发明设计了一种多维属性范围查询方法,该方法可以在分布式多集群计算环境 中支持共享和检索历史性能数据,该方法使用向量索引来解决数字型属性的范围查询,通 过对查询结果集进行交集操作来解决多维属性的简单查询。 在数字型属性范围查询中,将查询定义为Q:二QorQlD[A] G [umin,umax],其中D[A] 表示属性A的取值。在使用属性值之前,将属性值所在的区间划分为k个小区间,用k位二 进制向量编码。将值D[A]编码为一个k位的二进制向量Bitldx(D[A]) = (b。,lv…,bk—》,对每个i = O,l,…,k-2,仅当D[A] G [Ui,ui+1)时,bi = 1, i = k-1时,仅当D[A] G [Ui,ui+1]时,h = 1。 K[A]为属性A的k比特的标识符。UnitBitldx[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]) = (b。,bp ; 步骤三、当0《i《k-1时,循环处理以下步骤 计算b = UnitBitldx [i]&BitIdx (D [A]),如果b不为0,求出属性A的第b个关键节点Nk = successor (H(K[A] +b)),将包含向量UnitBitldx[i]的节点查询请求路由转发到节点Nk上, Nk初始化资源集合W',在节点Nk上使用K[A]和UnitBitldx[i]在向量索引表中
找到对应的Set将其中的元素加入集合W', Nk将资源集合W'返回给N,合并到集合W中; 在多维属性查询中,将多维属性查询定义为Q := Q and Q|A = str|AG [umin,
11_],其中D[A]表示属性A的取值,str为相应属性要查询的值。 多维属性范围查询的方法有以下步骤 步骤一、节点N接到多维查询请求Q,初始化资源集合W ; 步骤二、将多维复杂查询Q分解为单属性的简单查询Q2,……Qn, j = 1,2…,
步骤三、当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 = {P15 P2,…,PJ,将节点组织 成覆盖网络,路由信息在单独的连接上传播,并且维护一个节点集合P的无向生成树。覆盖 网络只用来路由查询和更新信息,而节点间可以直接通讯。 本方法通过向量索引来发布、存储和查询资源信息。在数字型属性范围查询中,将
查询定义为Q:二Q or Q|D[A] g [umin, umax],其中D[A]表示属性A的取值。 在使用属性值之前,将属性值所在的区间划分为k个小区间,用k位二进制向量
编码。例如,数字型属性A的值域为K^,UmJ,选择k+l个分割点Umin二U。〈W〈…
< uk = u隨将[umin, u隨]划分为k个相连的区间[Ui, ui+1) , i = 0, 1,…,k-2和[Ui, ui+1], i = k-lt)每种属性都需要定义一种值域的划分,将值D[A]编码为一个k位的二进制向 量BitIdx(D[A]) = (b。, bp…,bk—》,对每个i = O,l,…,k-2,当且仅当D[A] G [Ui, ui+1)时,bi = 1, i = k-1时,当且仅当D[A] G [Ui, Ui+1]时,bi = 1。 K[A]为属性A的k 比特的标识符。UnitBitldx[i]为第i位为1的单位向量,例如,UnitBitIdx[O] = (1,
0,…,0),UnitBitldx[1] = (O,l,…,0), ......, UnitBitldx[k_l] = (0,0, ,l),Nk =
successor (H画+UnitBitldx[i]))称为属性A的第i个关键节点,该节点维护了属性A 属于区间i的向量索引表,successor (P)为指向P的后继结点的后继函数。向量索引表的 表项有Attrldent :属性标识符,能够在系统中唯一确定一个属性的值;UnitBitldx :单位
向量,对应k位的单位向量;Set :资源集合,包含对应单位向量索引的资源。
数字型属性范围查询方法如下
a.查询请求节点N初始化资源集合W ; b.将需要查询的属性A的值D[A]编码为一个k位的二进制向量BitIdx(D[A])= (b0, ...bk—卩; c.当0《i《k-1时,循环处理以下步骤 计算b = UnitBitldx [i]&BitIdx (D [A]),如果b不为0,求出属性A的第b个关键 节点Nk = successor (H(K[A] +b)),将包含向量UnitBitldx[i]的节点查询请求路由转发到 节点Nk上, Nk初始化资源集合W',在节点Nk上使用K[A]和UnitBitldx[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] G [l,llO]的资源时,首先初始化资源节点集 合P以及资源集合W;将D[A]编码,编码后的向量索引为BitIdx(D[A]) = (O,O,l,l,l,l, 0, 0, 0, 0, 0, 0);依照Chord单关键字的查找方法根据H(K[A])找到属性A的关键节点Nk, 在这里将包含UnitBitldx [i]的节点查询请求发送给Nk ;Nk = successor (13) = N15,Nk = successor (80) = N89, Nk = successor (57) = N63禾口 Nk = successor (0) = N丄;在节点N15上以"Attribute A"和001000000000在向量索引表中查找Set,找到资源R2和资源R"将这两个节点加入集合W' ;N^将资源集合W'返回给查询请求节点N,由N将W'合并到集合W中;节点N89和N63上均返回空集合;在节点N丄上以"Attribute A,,禾口 000001000000在向量索引表中查找Set,找到了资源R2,将这个资源加入集合W'A将资源集合W'返回给查询请求节点N,由N将W'合并到集合W中,此时,查询过程终止。 该查找方法对于一次u G [x,y]查询的时间复杂度为O(mlogN),其中m为需要查询的区间个数,O(logN)为查询节点Nk需要的时间。 在多维属性查询中,将多维属性查询定义为Q := Q and Q|A = str|A G [umin,uj,其中D[A]表示属性A的取值。
多维属性查询方法如下 a.节点N接到多维查询请求Q,初始化资源集合W ; b.将多维复杂查询Q分解为单属性的简单查询Q"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 G [l,llO]andB='examplel',将查询Q 分解为:A G [1, 110]和Q2 :B = ' examplel',处理简单查询Q"得到资源集合W'包括资源R2和资源R"此时集合W为空,将节点R2和节点&放入集合W中;然后按照传统的Chord查询方法根据H(K[B] = ' examplel' ) = 46向节点N5。查询得到资源集合W'包含资源R2,由于此时资源集合W不为空,求集合W'和W的交集得到资源R2放入集合W中;此时查询过程终止。
权利要求
一种支持分布式多集群计算环境的多维属性范围查询的方法,其特征在于在多维属性查询中,将多维属性查询定义为Q=Q and Q|A=str|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比特的标识符,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。
2. 根据权利要求书1所述的支持分布式多集群计算环境的多维属性范围查询的方法,其特征在于在数字型属性范围查询中,将查询定义为Q:二Q or Q|D[A] g [umin, UmJ,其中D[A]表示属性A的取值,将值D[A]编码为一个k位的二进制向量Bitldx(D[A]) = (b。,lv...,V》,对每个i = O,l, ... , k-2,仅当D[A] G [Ui, Ui+1)时,bi = 1, i = k-1时,仅当D[A] G [Ui,ui+1]时,bi = l,K[A]为属性A的k比特的标识符,UnitBitldx[i]为第i位为1的k阶单位向量,Nk二 successor (H(K[A]+UnitBitIdx[i]))称为属性A的第i个关键节点,该节点维护了属性A属于区间i的向量索引表,其中successor(P)为指向P的后继结点的后继函数。向量索引表的表项有Attrldent :属性标识符,能够在系统中唯一确定一个属性的值;UnitBitldx :单位向量,对应k位的单位向量;Set :资源集合,包含对应单位向量索引的资源;数字型属性范围查询方法有以下步骤步骤一、查询请求节点N初始化资源集合W ;步骤二、将需要查询的属性A的值D[A]编码为一个k位的二进制向量Bitldx(D[A])=(b0, b" , V》;步骤三、当0《i《k-1时,循环处理以下步骤计算b = UnitBitldx [i]&BitIdx (D [A]),如果b不为0,求出属性A的第b个关键节点Nk = successor (H(K[A]+13)),将包含向量UnitBitldx[i]的节点查询请求路由转发到节点Nk初始化资源集合W',在节点Nk上使用K[A]和UnitBitldx[i]在向量索引表中找到对应的Set将其中的元素加入集合W' , Nk将资源集合W'返回给N,合并到集合W中。
全文摘要
本发明涉及一种支持分布式多集群计算环境的多维属性范围查询方法来支持共享和检索历史性能数据,该方法在分布式哈希表(DistributedHash Table)基础上使用向量索引来解决数字型属性的范围查询,通过对查询结果集进行交集操作来解决多维属性的简单查询,实验结果证明,该方法具有比较好的可扩展性。
文档编号G06F17/30GK101719155SQ20091024434
公开日2010年6月2日 申请日期2009年12月29日 优先权日2009年12月29日
发明者丁毅, 张伟, 张新宇, 胡凯, 陈陆佳 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1