專利名稱:一種支持分布式多集群計(jì)算環(huán)境的多維屬性范圍查詢的方法
技術(shù)領(lǐng)域:
本發(fā)明設(shè)計(jì)了一種適合分布式多集群計(jì)算環(huán)境的多維屬性范圍查詢方法來支持
共享和檢索歷史性能數(shù)據(jù),該方法使用向量索引來解決數(shù)字型屬性的范圍查詢,通過對查 詢結(jié)果集進(jìn)行交集操作來解決多維屬性的簡單查詢。
背景技術(shù):
在分布式多集群計(jì)算環(huán)境中允許集群間共享性能數(shù)據(jù)以便提高性能分析的效率 或者進(jìn)行多實(shí)驗(yàn)分析,這就需要能夠在這個分布式多集群環(huán)境中搜索查詢歷史數(shù)據(jù)的方 法。 目前,在對等網(wǎng)絡(luò)中實(shí)現(xiàn)資源查找的方法中基于分布式哈希表(Distributed Hash Table)的查詢方法是一種有效率的查詢方法。但是傳統(tǒng)的基于DHT的查詢方法是面 向精確查詢的。為了在分布式多集群計(jì)算環(huán)境中共享實(shí)驗(yàn)(并行作業(yè)在特定環(huán)境下的一次 執(zhí)行)數(shù)據(jù),就要實(shí)現(xiàn)多維屬性范圍查詢方法,支持性能數(shù)據(jù)的查詢工作。例如,一次實(shí)驗(yàn) 產(chǎn)生的性能數(shù)據(jù)資源屬性可以描述為NodeNumbers = 6, CPUType = Intel, CPUSpeed = 3. 2GHz,而一次查詢的描述可能為5 <= NodeNumbers <= 15andCPUType = Intel and CPUSpeed >= 2GHz。本發(fā)明就是要找到一種映射方法f,將資源屬性空間S上的點(diǎn)P(Sl, s2,…sj (m是資源屬性的個數(shù),Si, (1《i《m)為資源的一種屬性)映射為散列空間上的 一點(diǎn)Q(x),其中0《x《2t-l (t是散列值的bit位數(shù)),并且設(shè)計(jì)出多維屬性的查詢方法。
近來,有人提出將Chord的資源定位方法應(yīng)用于網(wǎng)格系統(tǒng)。對于數(shù)字型屬性通過 重新定義散列函數(shù)來分配標(biāo)識符,雖然解決了傳統(tǒng)Chord資源定位方法的不足,實(shí)現(xiàn)簡單, 但該方法本質(zhì)上只使用了一種屬性作為需要的散列屬性,即所有查詢必須含有該屬性,在 支配屬性定位的基礎(chǔ)上再比對其它屬性;當(dāng)資源在稠密節(jié)點(diǎn)上稀疏分布時,查詢效率較差。
基于樹狀向量索引的范圍屬性查詢方法具有較好的查詢性能和可擴(kuò)展性,并且通 常情況下可以準(zhǔn)確返回所有匹配的結(jié)果,但是這種方法如果直接用在Chord系統(tǒng)上會導(dǎo)致 索引信息的環(huán)狀遞歸更新,造成所有節(jié)點(diǎn)上的索引信息完全相同,從而不能正常進(jìn)行查詢; 此外,由于查詢只能從鄰居節(jié)點(diǎn)收集信息,所以當(dāng)更新節(jié)點(diǎn)距離查詢請求節(jié)點(diǎn)較遠(yuǎn)時,查詢 請求節(jié)點(diǎn)需要較長時間才能獲得準(zhǔn)確的數(shù)據(jù)。
發(fā)明內(nèi)容
本發(fā)明設(shè)計(jì)了一種多維屬性范圍查詢方法,該方法可以在分布式多集群計(jì)算環(huán)境 中支持共享和檢索歷史性能數(shù)據(jù),該方法使用向量索引來解決數(shù)字型屬性的范圍查詢,通 過對查詢結(jié)果集進(jìn)行交集操作來解決多維屬性的簡單查詢。 在數(shù)字型屬性范圍查詢中,將查詢定義為Q:二QorQlD[A] G [umin,umax],其中D[A] 表示屬性A的取值。在使用屬性值之前,將屬性值所在的區(qū)間劃分為k個小區(qū)間,用k位二 進(jìn)制向量編碼。將值D[A]編碼為一個k位的二進(jìn)制向量Bitldx(D[A]) = (b。,lv…,bk—》,對每個i = O,l,…,k-2,僅當(dāng)D[A] G [Ui,ui+1)時,bi = 1, i = k-1時,僅當(dāng)D[A] G [Ui,ui+1]時,h = 1。 K[A]為屬性A的k比特的標(biāo)識符。UnitBitldx[i]為第i位為1的k階單位向量,Nk = successor (H(K[A]+UnitBitIdx[i]))稱為屬性A的第i個關(guān)鍵節(jié)點(diǎn),該節(jié)點(diǎn)維護(hù)了屬性A屬于區(qū)間i的向量索引表,其中successor(P)為指向P的后繼結(jié)點(diǎn)的后繼函數(shù)。
數(shù)字型屬性范圍查詢方法有以下步驟
步驟一、查詢請求節(jié)點(diǎn)N初始化資源集合W ; 步驟二、將需要查詢的屬性A的值D[A]編碼為 一 個k位的二進(jìn)制向量BitIdx(D[A]) = (b。,bp ; 步驟三、當(dāng)0《i《k-1時,循環(huán)處理以下步驟 計(jì)算b = UnitBitldx [i]&BitIdx (D [A]),如果b不為0,求出屬性A的第b個關(guān)鍵節(jié)點(diǎn)Nk = successor (H(K[A] +b)),將包含向量UnitBitldx[i]的節(jié)點(diǎn)查詢請求路由轉(zhuǎn)發(fā)到節(jié)點(diǎn)Nk上, Nk初始化資源集合W',在節(jié)點(diǎn)Nk上使用K[A]和UnitBitldx[i]在向量索引表中
找到對應(yīng)的Set將其中的元素加入集合W', Nk將資源集合W'返回給N,合并到集合W中; 在多維屬性查詢中,將多維屬性查詢定義為Q := Q and Q|A = str|AG [umin,
11_],其中D[A]表示屬性A的取值,str為相應(yīng)屬性要查詢的值。 多維屬性范圍查詢的方法有以下步驟 步驟一、節(jié)點(diǎn)N接到多維查詢請求Q,初始化資源集合W ; 步驟二、將多維復(fù)雜查詢Q分解為單屬性的簡單查詢Q2,……Qn, j = 1,2…,
步驟三、當(dāng)j = 1,2…,n循環(huán)處理以下步驟 處理簡單查詢Qj,如果Qj對應(yīng)A = str的簡單查詢,根據(jù)哈希散列函數(shù)H(K[A]=str)找到資源集合W';如果Qj對應(yīng)數(shù)字型屬性范圍查詢,使用數(shù)字型屬性范圍查詢方法進(jìn)行處理得到資源集合W'; 如果集合W為空,則將W'賦給集合W,否則求集合W'與W的交集賦給集合W ;
本發(fā)明的多維屬性范圍查詢方法的優(yōu)點(diǎn)在于 1.該方法使用向量索引來解決數(shù)字型屬性的范圍查詢,彌補(bǔ)了分布式哈希表查詢方法面向精確查詢的不足,而支持屬性值的范圍查詢。 2.實(shí)驗(yàn)證明,該方法無論在查詢范圍或者還是在節(jié)點(diǎn)規(guī)模方面都比現(xiàn)有方法具有更好的性能和更高的可擴(kuò)展性。
圖1數(shù)字型屬性范圍查詢方法流程圖 圖2范圍查詢方法實(shí)例 圖3多維屬性范圍查詢方法流程圖 圖4多維屬性范圍查詢實(shí)例 附表說明 圖5屬性A在各節(jié)點(diǎn)上的區(qū)間向量索引表
具體實(shí)施例方式
下面將結(jié)合附圖對本發(fā)明作進(jìn)一步的說明 本方法將具有N個節(jié)點(diǎn)的P2P系統(tǒng)表示為集合P = {P15 P2,…,PJ,將節(jié)點(diǎn)組織 成覆蓋網(wǎng)絡(luò),路由信息在單獨(dú)的連接上傳播,并且維護(hù)一個節(jié)點(diǎn)集合P的無向生成樹。覆蓋 網(wǎng)絡(luò)只用來路由查詢和更新信息,而節(jié)點(diǎn)間可以直接通訊。 本方法通過向量索引來發(fā)布、存儲和查詢資源信息。在數(shù)字型屬性范圍查詢中,將
查詢定義為Q:二Q or Q|D[A] g [umin, umax],其中D[A]表示屬性A的取值。 在使用屬性值之前,將屬性值所在的區(qū)間劃分為k個小區(qū)間,用k位二進(jìn)制向量
編碼。例如,數(shù)字型屬性A的值域?yàn)镵^,UmJ,選擇k+l個分割點(diǎn)Umin二U。〈W〈…
< uk = u隨將[umin, u隨]劃分為k個相連的區(qū)間[Ui, ui+1) , i = 0, 1,…,k-2和[Ui, ui+1], i = k-lt)每種屬性都需要定義一種值域的劃分,將值D[A]編碼為一個k位的二進(jìn)制向 量BitIdx(D[A]) = (b。, bp…,bk—》,對每個i = O,l,…,k-2,當(dāng)且僅當(dāng)D[A] G [Ui, ui+1)時,bi = 1, i = k-1時,當(dāng)且僅當(dāng)D[A] G [Ui, Ui+1]時,bi = 1。 K[A]為屬性A的k 比特的標(biāo)識符。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個關(guān)鍵節(jié)點(diǎn),該節(jié)點(diǎn)維護(hù)了屬性A 屬于區(qū)間i的向量索引表,successor (P)為指向P的后繼結(jié)點(diǎn)的后繼函數(shù)。向量索引表的 表項(xiàng)有Attrldent :屬性標(biāo)識符,能夠在系統(tǒng)中唯一確定一個屬性的值;UnitBitldx :單位
向量,對應(yīng)k位的單位向量;Set :資源集合,包含對應(yīng)單位向量索引的資源。
數(shù)字型屬性范圍查詢方法如下
a.查詢請求節(jié)點(diǎn)N初始化資源集合W ; b.將需要查詢的屬性A的值D[A]編碼為一個k位的二進(jìn)制向量BitIdx(D[A])= (b0, ...bk—卩; c.當(dāng)0《i《k-1時,循環(huán)處理以下步驟 計(jì)算b = UnitBitldx [i]&BitIdx (D [A]),如果b不為0,求出屬性A的第b個關(guān)鍵 節(jié)點(diǎn)Nk = successor (H(K[A] +b)),將包含向量UnitBitldx[i]的節(jié)點(diǎn)查詢請求路由轉(zhuǎn)發(fā)到 節(jié)點(diǎn)Nk上, Nk初始化資源集合W',在節(jié)點(diǎn)Nk上使用K[A]和UnitBitldx[i]在向量索引表中 找到對應(yīng)的Set將其中的元素加入集合W', Nk將資源集合W'返回給N,合并到集合W中;
方法流程圖如圖所示。 方法實(shí)例如圖所示,設(shè)資源的屬性A值域?yàn)閇-180,180],使用12位二進(jìn)制 向量編碼,并且H(K[A]+, 001000000000, ) = 13, H(K[A]+, 000100000000, ) = 80, H(K[A]+, 000010000000, ) = 57, H(K[A]+, 000001000000, ) = 0。屬性A的相關(guān)的區(qū)間 向量索引表如圖5所示。當(dāng)N要查詢D[A] G [l,llO]的資源時,首先初始化資源節(jié)點(diǎn)集 合P以及資源集合W;將D[A]編碼,編碼后的向量索引為BitIdx(D[A]) = (O,O,l,l,l,l, 0, 0, 0, 0, 0, 0);依照Chord單關(guān)鍵字的查找方法根據(jù)H(K[A])找到屬性A的關(guān)鍵節(jié)點(diǎn)Nk, 在這里將包含UnitBitldx [i]的節(jié)點(diǎn)查詢請求發(fā)送給Nk ;Nk = successor (13) = N15,Nk = successor (80) = N89, Nk = successor (57) = N63禾口 Nk = successor (0) = N丄;在節(jié)點(diǎn)N15上以"Attribute A"和001000000000在向量索引表中查找Set,找到資源R2和資源R"將這兩個節(jié)點(diǎn)加入集合W' ;N^將資源集合W'返回給查詢請求節(jié)點(diǎn)N,由N將W'合并到集合W中;節(jié)點(diǎn)N89和N63上均返回空集合;在節(jié)點(diǎn)N丄上以"Attribute A,,禾口 000001000000在向量索引表中查找Set,找到了資源R2,將這個資源加入集合W'A將資源集合W'返回給查詢請求節(jié)點(diǎn)N,由N將W'合并到集合W中,此時,查詢過程終止。 該查找方法對于一次u G [x,y]查詢的時間復(fù)雜度為O(mlogN),其中m為需要查詢的區(qū)間個數(shù),O(logN)為查詢節(jié)點(diǎn)Nk需要的時間。 在多維屬性查詢中,將多維屬性查詢定義為Q := Q and Q|A = str|A G [umin,uj,其中D[A]表示屬性A的取值。
多維屬性查詢方法如下 a.節(jié)點(diǎn)N接到多維查詢請求Q,初始化資源集合W ; b.將多維復(fù)雜查詢Q分解為單屬性的簡單查詢Q"Q2,……Qn; c.當(dāng)j = 1,2…,n循環(huán)處理以下步驟 處理簡單查詢Qj,如果Qj對應(yīng)A = str的簡單查詢,根據(jù)哈希散列函數(shù)H(K[A]=str)找到資源集合W';如果Qj對應(yīng)數(shù)字型屬性范圍查詢,使用數(shù)字型屬性范圍查詢方法進(jìn)行處理得到資源集合W'; 如果集合W為空,則將W'賦給集合W,否則求集合W'與W的交集賦給集合W。
方法流程圖如圖3所示。 方法實(shí)例如圖4所示,設(shè)節(jié)點(diǎn)N接收到多維查詢請求Q:A G [l,llO]andB='examplel',將查詢Q 分解為:A G [1, 110]和Q2 :B = ' examplel',處理簡單查詢Q"得到資源集合W'包括資源R2和資源R"此時集合W為空,將節(jié)點(diǎn)R2和節(jié)點(diǎn)&放入集合W中;然后按照傳統(tǒng)的Chord查詢方法根據(jù)H(K[B] = ' examplel' ) = 46向節(jié)點(diǎn)N5。查詢得到資源集合W'包含資源R2,由于此時資源集合W不為空,求集合W'和W的交集得到資源R2放入集合W中;此時查詢過程終止。
權(quán)利要求
一種支持分布式多集群計(jì)算環(huán)境的多維屬性范圍查詢的方法,其特征在于在多維屬性查詢中,將多維屬性查詢定義為Q=Q and Q|A=str|D[A]∈[umin,umax],其中D[A]表示屬性A的取值,在使用屬性值之前,將屬性值所在的區(qū)間劃分為k個小區(qū)間,用k位二進(jìn)制向量編碼,將值D[A]編碼為一個k位的二進(jìn)制向量BitIdx(D[A])=(b0,b1,...,bk-1),對每個i=0,1,...,k-2,僅當(dāng)D[A]∈[ui,ui+1)時,bi=1,i=k-1時,僅當(dāng)D[A]∈[ui,ui+1]時,bi=1,K[A]為屬性A的k比特的標(biāo)識符,str為相應(yīng)屬性要查詢的值,該方法包括以下步驟步驟一、節(jié)點(diǎn)N接到多維查詢請求Q,初始化資源集合W;步驟二、將多維復(fù)雜查詢Q分解為單屬性的簡單查詢Q1,Q2,......Qn,j=1,2...,n;步驟三、當(dāng)j=1,2...,n循環(huán)處理以下步驟處理簡單查詢Qj,如果Qj對應(yīng)A=str的簡單查詢,根據(jù)哈希散列函數(shù)H(K[A]=str)找到資源集合W’;如果Qj對應(yīng)數(shù)字型屬性范圍查詢,使用數(shù)字型屬性范圍查詢方法進(jìn)行處理得到資源集合W’;如果集合W為空,則將W’賦給集合W,否則求集合W’與W的交集賦給集合W。
2. 根據(jù)權(quán)利要求書1所述的支持分布式多集群計(jì)算環(huán)境的多維屬性范圍查詢的方法,其特征在于在數(shù)字型屬性范圍查詢中,將查詢定義為Q:二Q or Q|D[A] g [umin, UmJ,其中D[A]表示屬性A的取值,將值D[A]編碼為一個k位的二進(jìn)制向量Bitldx(D[A]) = (b。,lv...,V》,對每個i = O,l, ... , k-2,僅當(dāng)D[A] G [Ui, Ui+1)時,bi = 1, i = k-1時,僅當(dāng)D[A] G [Ui,ui+1]時,bi = l,K[A]為屬性A的k比特的標(biāo)識符,UnitBitldx[i]為第i位為1的k階單位向量,Nk二 successor (H(K[A]+UnitBitIdx[i]))稱為屬性A的第i個關(guān)鍵節(jié)點(diǎn),該節(jié)點(diǎn)維護(hù)了屬性A屬于區(qū)間i的向量索引表,其中successor(P)為指向P的后繼結(jié)點(diǎn)的后繼函數(shù)。向量索引表的表項(xiàng)有Attrldent :屬性標(biāo)識符,能夠在系統(tǒng)中唯一確定一個屬性的值;UnitBitldx :單位向量,對應(yīng)k位的單位向量;Set :資源集合,包含對應(yīng)單位向量索引的資源;數(shù)字型屬性范圍查詢方法有以下步驟步驟一、查詢請求節(jié)點(diǎn)N初始化資源集合W ;步驟二、將需要查詢的屬性A的值D[A]編碼為一個k位的二進(jìn)制向量Bitldx(D[A])=(b0, b" , V》;步驟三、當(dāng)0《i《k-1時,循環(huán)處理以下步驟計(jì)算b = UnitBitldx [i]&BitIdx (D [A]),如果b不為0,求出屬性A的第b個關(guān)鍵節(jié)點(diǎn)Nk = successor (H(K[A]+13)),將包含向量UnitBitldx[i]的節(jié)點(diǎn)查詢請求路由轉(zhuǎn)發(fā)到節(jié)點(diǎn)Nk初始化資源集合W',在節(jié)點(diǎn)Nk上使用K[A]和UnitBitldx[i]在向量索引表中找到對應(yīng)的Set將其中的元素加入集合W' , Nk將資源集合W'返回給N,合并到集合W中。
全文摘要
本發(fā)明涉及一種支持分布式多集群計(jì)算環(huán)境的多維屬性范圍查詢方法來支持共享和檢索歷史性能數(shù)據(jù),該方法在分布式哈希表(DistributedHash Table)基礎(chǔ)上使用向量索引來解決數(shù)字型屬性的范圍查詢,通過對查詢結(jié)果集進(jìn)行交集操作來解決多維屬性的簡單查詢,實(shí)驗(yàn)結(jié)果證明,該方法具有比較好的可擴(kuò)展性。
文檔編號G06F17/30GK101719155SQ20091024434
公開日2010年6月2日 申請日期2009年12月29日 優(yōu)先權(quán)日2009年12月29日
發(fā)明者丁毅, 張偉, 張新宇, 胡凱, 陳陸佳 申請人:北京航空航天大學(xué)