基于負載均衡和查詢日志的數據空間多維索引方法
【專利摘要】基于負載均衡和查詢日志的數據空間多維索引方法,涉及數據空間索引技術領域。旨在把倒排索引分布到不同的索引節點中,使得各個索引節點保持負載均衡,同時最小化查詢處理涉及的通信開銷和減少搜索空間。在垂直劃分中,首先利用查詢日志和實體中頻繁出現的詞,聚合索引token詞,使用超圖表示用戶查詢與倒排列表間的訪問模式;在水平劃分中,通過超圖刻畫用戶查詢與實體間的訪問模式信息,把水平劃分問題歸約為超圖劃分問題,使得不同索引節點的負載保持均衡,并降低查詢涉及的通信開銷。結合垂直劃分和水平劃分策略,構建二維混合索引并擴展為三維索引。通過在公開數據集DBLP上進行實驗表明本發明方法在吞吐量、查詢響應時間及擴展性優于已有方法。
【專利說明】
基于負載均衡和查詢日志的數據空間多維索引方法
技術領域
[0001] 本發明涉及一種數據空間多維索引方法,涉及數據空間索引技術領域。
【背景技術】
[0002] 隨著大數據和互聯網技術的快速發展,數據空間的場景已經越來越普遍,尤其是 在像Wikipedia、Google Base和Linked Data之類的Web和個人信息管理系統領域中。與主 要關注特定領域、固定數量屬性的傳統關系數據庫不同的是,數據空間具有異構、稀疏、規 模大、相互關聯等特點。因此,為用戶提供高效的數據空間查詢服務具有重要意義。通常,索 引往往是提高查詢處理效率的重要手段之一,因此,研究一種高效的數據空間索引技術具 有重要意義。
[0003] 目前數據空間索引技術的研究已經引起了研究者廣泛關注,并取得了一些研究成 果。針對iDM模型,Dittrich和Salles提出了一種樸素的數據空間索引方法。該方法采用傳 統索引技術分別索引iDM模型中不同組件,從而構成混合索引以支持數據空間查詢。為解決 樸素數據空間索引不統一導致效率低問題,Dong和Halevy首次系統地研究了數據空間索引 問題,提出了一種擴展倒排索引技術,以支持結構感知的查詢。其主要思想是把屬性標簽、 屬性值、關聯與層次信息編碼為tokens詞。然而,在真實數據場景中,Song和Chen發現三個 有趣觀察:(1)數據空間具有極端稀疏特性;(2)元組中屬性頻率分布近似遵循Zipf Law分 布;(3)用戶往往對top-k結果感興趣。受此啟發,他們研究了數據空間索引的劃分問題,從 而解決直接擴展的倒排索引易導致數據空間訪問效率低問題。針對大圖中已知項搜索查詢 優化問題,Zhong等人提出了一種MVP索引,即,基于啟發式事先盡可能地剪枝掉不參與最終 top-k應答的匹配頂點,從而顯著地減少搜索空間。在此基礎上,Zhong等人研究了數據空間 效率問題,提出了一種d-距離圖索引。它包含兩種索引結構:(1)單一關鍵詞的3-in-l語義 圖索引;(2)針對非字符串數據類型的屬性圖索引。此外,Wang等人研究了個人數據空間中 查詢質量問題,提出了一種緊湊索引技術。該技術主要是對文檔中最重要和最具代表性的 語義構建索引。然而已有的這些方法均無法高效地支持大規模數據查詢處理。這是因為在 進行大規模數據查詢處理過程,硬盤1/0開銷代價遠高于搜索節省的開銷,或者內存無法加 載龐大的索引圖。
【發明內容】
[0004] 本發明的目的是提供一種基于負載均衡和查詢日志的數據空間多維索引方法,以 高效地支持大規模數據查詢處理。本發明旨在把倒排索引分布到不同的索引節點中,使得 各個索引節點保持負載均衡,同時最小化查詢處理涉及的通信開銷和減少搜索空間。
[0005] 本發明為解決上述技術問題采取的技術方案是:
[0006] -種基于負載均衡和查詢日志的數據空間多維索引方法,所述方法將倒排索引分 布到不同的索引節點中,使得各個索引節點保持負載均衡,所述方法為:
[0007] 結合基于負載均衡與超圖劃分的垂直劃分索引和基于負載均衡與超圖劃分的水 平劃分索引得到二維劃分索引框架(2D-IL),從吞吐量和容錯率角度出發,擴展二維劃分索 引框架(2D-IL)為三維索引框架(MIL),基于三維索引框架(MIL)實現數據空間多維索引方 法。
[0008] 所述方法的具實現過程為:
[0009] 步驟一、獲得二維劃分索引框架(2D-IL)的過程為:
[0010] 步驟一一、確定基于負載均衡與超圖劃分的垂直劃分索引
[0011] 確定垂直劃分索引框架
[0012]使用查詢日志和實體集中tokens偏斜信息來壓縮數據空間倒排索引,形成一組聚 合后的tokens詞;然后,按照負載均衡和超圖劃分把所述tokens詞的倒排列表均衡地分布 到相應的索引節點中;
[0013] 基于負載均衡與超圖劃分的垂直劃分
[0014] 1)、聚合tokens詞的選取:
[0015]通過聚合頻繁地共同出現在實體或者查詢日志中的tokens詞來壓縮索引;
[0016] 2)、給出垂直索引分布方式
[0017]所述垂直索引分布方式基于聚合tokens詞,把壓縮后的倒排索引分布到相應的索 引節點集中,使得保持各個索引節點負載均衡,同時最小化索引節點與索引服務器的通信 開銷;
[0018] 步驟一二、確定基于負載均衡與超圖劃分的水平劃分索引
[0019] 水平劃分索引框架的確定:按照負載均衡和超圖劃分把實體集的倒排列表分布到 相應的索引節點中;
[0020] 水平劃分:基于查詢日志的訪問模式信息與超圖理論,把實體劃分到不同的索引 節點中,使得各個索引節點負載保持均衡以及索引節點內部任意兩個實體的相似性較高, 同時最小化索引節點與索引服務器的通信開銷;
[0021] 步驟一三、獲得二維劃分索引框架:
[0022] 使二維索引分布在不同索引節點中,使每個索引節點中索引花費對存儲空間顯著 降低,二維索引邏輯上可以看成一個N X Μ的集群,
[0023] 數據空間索引在行維度上是一個基于負載均衡與超圖劃分的水平劃分索引,按照 實體級劃分;
[0024] 數據空間索引在列維度上是一個基于負載均衡與超圖劃分的垂直劃分索引,按照 聚合tokens詞劃分;
[0025]每個索引節點對應tokens詞壓縮后的倒排索引;
[0026]在第i行和第j列中的索引節點ISij中,包含tokens詞{a,b, . . .,f}和實體{〇3〇, ...〇5〇},其對應的倒排索引格式如虛線箭頭指向的倒排索引;在索引節點設沖,其索引詞 匯為原始詞匯的一個子集{a,b,...,f},這些詞匯在垂直劃分后形成三個聚合tokens詞,聚 合tokens詞對應實體集都同屬于一個水平劃分;
[0027]步驟二、擴展二維劃分索引框架(2D-IL)為三維索引框架(MIL):
[0028]通過為二維索引中每個索引節點ISij復制D份,構成三維立方體的多維索引,在索 引節點ISu的每個副本之間保證通信,防止該索引節點IS^失敗時導致沒有可用的查詢結 果的情況;
[0029]步驟三、利用三維索引框架(MIL)實現數據空間多維索引:
[0030]所述三維索引邏輯上可以看成一個NXMXD的3D立方體,其中D是復制的份數; [0031]在索引號(Ni,Mj,Dk)對應的單元格中,黑色點表示索引節點ISijk涉及索引token詞 {a,b, . . .,f}、實體{〇3〇,. . .〇5q}并且是第k個備份;
[0032] 當一個查詢Q = tiAt2A . · · Λ?η被提交時,其處理流程為:(1)找出涉及token詞 . . .,tn}的列集合{MJ ;⑵對于這些列集合,選擇出相似性分數大于某個閾值的 行集合{Nj}; (3)在(Nj,Mj)對應的備份中,隨機選擇一個立方體;(4)在確定所有的小立方體 后,即(Ni,Mj,Dk)對應的立方體,把相應的子查詢并發地發送到對應的索引節點ISijk中,進 行并發查詢;如果當前索引節點IS ljk失敗,利用通信機制把子查詢發送隨機發送到其它副 本的索引節點中ISljl; (5)最后把所有并發查詢結果進行綜合并返回給用戶。
[0033] 在步驟一一中,基于負載均衡與超圖劃分的垂直劃分過程中,
[0034] 聚合tokens詞的選取具體為:
[0035] 利用TokensSelection 算法選取聚合 tokens 詞:
[0036] TokensSelection(TDB,C,Τ)
[0037] 輸入:TDB是一個事務數據庫,其中每個事務為一個實體或者查詢日志中一個查 詢,事務對應的項集為實體包含的tokens詞集合或者查詢包含的tokens詞集合,ξ是最小支 持度;
[0038]輸出:Τ為tokens詞的劃分,初始為空;
[0039]首先掃描事務數據庫TDB,尋找非頻繁1-項集NF和頻繁1-項集F,并對F按照支持度 降序進彳丁排序;
[0040] NF中每個token詞單獨作為一個垂直劃分列表加入到集合T中;接下來,對于F來 說,再一次掃描TDB,構建FP樹,并對F中每個tokenk詞分別調用FP-growth (FP樹,tokenk)算 法,從而產生所有的頻繁項集,記為freq_set;
[0041] 為保證頻繁項集互不相交,按照頻繁項集對頻繁項數量和支持度順序對freq_set 進行降序排序;最后進行不斷迭代,直至freq_Set為空,在每次迭代中,先取出第一個頻繁 項集top,并把top作為一個垂直劃分加入到集合T中,同時從freq_set中移除top,然后從 freq_set中移除與top相交不為空對所有頻繁項集;
[0042]給出垂直索引分布方式,具體為:
[0043] 給定一個查詢集合Q= {qi,q2, . . .,q|Q|}、詞匯表T= {ti,t2, . . .,t|T|}、索引節點集 合15={151,152,...,仏}和壓縮后的倒排索引'={(, 1,1,41),^,心),...,(^')},其中^是 聚合tokens并且和訪問頻率freqi關聯,Li是ti對應的倒排列表,每個% £7 ;聚合tokemsq 包括一個或多個ti,不同的^交集為空且全體4并集為Τ;
[0044] 定義超圖:一個超圖H=(V,E)是由頂點集合V和超邊集合Ε組成,其中每條超邊ej e E與V中頂點子集相連,每個頂點Vi e V具有一個權重Wi;
[0045] 每個頂點表示聚合tokens詞,其權重為訪問該聚合tokens詞對應倒排列表的開 銷,每條超邊表示查詢中tokens詞在哪些聚合tokens詞^中出現,即一個查詢與相應的每 一個4,進行連接;
[0046] 11 = {¥1,2,...^}是一個111路的超圖劃分當且僅當每個部分¥1^傘11¥1=傘 且
[0047] 超圖劃分π是λ-平衡當且僅當對每一個部分Vke Π ,Wk彡(1+A)wavg,其中權重 Κ = Σ,α Hvg是所有Wk的平均權重;
[0048] 對于超圖來說,如果超邊ejeE與部分vk中一(多)個頂點相連,則稱超邊 ejeE與部 分Vk的相連,其連通度Φ( e j,Vk) = 1;
[0049] 超邊e盧E與劃分Π 的連接度扒、卬^^^扒卜^即與超邊相連接的部分數; m路超圖劃分問題可以定義為尋找一個λ-平衡的超圖劃分,使得「(Π ) = Σν_,.妁9η)最 小;
[0050] 垂直索引劃分的目標是:利用查找日志和實體的偏斜信息,生成一組互不相交的 聚合tokens詞,然后利用用戶查詢日志中訪問倒排列表信息均衡地把聚合tokens詞對應的 倒排列表分布到不同索引節點中,并使得通信開銷最小;利用查詢與聚合tokens詞的交互 信息,按照處理聚合token詞的計算負載情況,把所有聚合tokens詞均衡地劃分到不同對索 引節點中,并使得查詢涉及的索引節點數量最小;
[0051 ]把聚合tokens詞看作超圖中頂點,單個索引節點ISk中包含的所有聚合token詞看 作超圖中頂點集的一個部分Vk辛Φ,查詢日志中一個查詢qjeQ看作一條超邊e」eE,查詢日 志中所有查詢訪問索引節點ISk中倒排列表的開銷看作超圖劃分Π 中部分Vk的總權重Wk,所 有查詢涉及的所有分布式節點數量看作超圖劃分Π 的總通信開銷Γ ( Π );
[0052] 垂直索引分布問題歸約為λ-平衡的超圖劃分問題,即Π 中每個部分Vk對應分配給 索引節點ISk的聚合tokens集合Tk,每個Wk對應ISk的所有計算負載,Γ (Π )對應查詢Q涉及 的總通信開銷。
[0053]在步驟一二中,確定基于負載均衡與超圖劃分的水平劃分索引的過程中,
[0054] 水平劃分的過程為:
[0055]給定一個查詢集合Q= {qi,q2, · · ·,q|Q|}、實體集合0= {〇1,〇2, · · ·,0|Q|}、實體間的 相似性矩陣A={sim(〇i,〇j) |l<i,j彡|0| }和索引節點集合ISyiShlS% . . .,ISn},其中 sim(〇i,〇j)表示兩個實體的相似性,每個查詢% ;
[0056] 定義(λ,η)-平衡且相似的超圖劃分,超圖劃分Π 是(λ,η)-平衡且相似,當且僅當,
[0057] (1)對每一個部分Vke π K(i+x)wavg,其中權重》? 是所有1的 平均權重;
[0058] (2)對每一個部分VkG Π ,任意兩個頂點VLVjeVhsinKvijjPn^msinKvijj) 表示兩個頂點的相似性;
[0059] 對于超圖來說,如果超邊ej e E與部分Vk中一(多)個頂點相連,則稱超邊ej e E與部 分Vk的相連,其連通度Φ(ej,Vk) = 1;超邊ej e E與劃分Π 的連接度^VΠ )=2^πG), 即與超邊相連接的部分數;m路超圖劃分問題也可以定義為尋找出一個(λ,η)-平衡且相似 的超圖劃分,使得「( Π ) = Π )最小;
[0060] 水平索引劃分的目標是:基于查詢日志的訪問模式信息與超圖理論,把實體劃分 到不同的索引節點中,使得各個索引節點負載保持均衡以及索引節點內部任意兩個實體的 相似性較高,同時最小化索引節點與索引服務器的通信開銷;
[0061 ]把每個實體Oi詞看作超圖中頂點Vi e V,其權重為處理該實體Oi的計算負載Wi,單 個索引節點ISk中包含的所有實體Ok看作超圖中頂點集的一個部分Vk# Φ,并且ISk中實體 共享相似的屬性,查詢日志中一個查詢qj e Q看作一條超邊ej e E,查詢日志中所有查詢訪問 索引節點ISk中倒排列表的開銷看作超圖劃分Π 中部分Vk的總權重Wk,所有查詢涉及的所有 分布式節點數量看作超圖劃分Π 的總通信開銷Γ ( Π );
[0062] 水平索引分布問題可以歸約為(λ,η)-平衡的超圖劃分問題,即Π 中每個子頂點集 Vk對應分配給索引節點ISk的實體集合0k,每個Wk對應ISk的所有計算負載,每對頂點的相似 性對應每對實體間的相似性,Γ (Π )對應查詢Q涉及的總通信開銷;具體來說,使用超圖H = (V,E)表示用戶查詢集與水平劃分中實體集之間的交互;在超圖Η中,每個實體〇i代表一個 頂點Vi e V,每個查詢qj e Q代表一條超邊ej e E,每個頂點Vi的權重Wi代表處理該實體〇i的計 算負載,每個頂點記錄一組它所包含tokens詞的訪問頻率;
[0063] 假定f(ti)為token詞ti的訪問頻率,即查詢日志中token詞ti的頻率,在查詢處理 中,頂點 Vl的權重Wl采用下式進行度量:
[0064] wt = ./(〇* |ΤΓ/Η〇
[0065] 其中I Τ I表示每個實體0的平均tokens詞個數。
[0066] 本發明的有益效果是:為高效地訪問數據空間,本發明從負載均衡和劃分的角度 提出了一種分布式的數據空間多維索引。主要思想是基于tokens詞劃分、實體劃分以及復 制策略構建數據空間多維索引,并且利用查詢日志的訪問模式和超圖理論,把倒排列表分 布到集群的不同節點中,從而保持各個索引節點負載均衡、減少查詢通信開銷,進而提高數 據空間并行查詢處理性能。具體來說,(1)在垂直劃分中,首先利用查詢日志和實體中頻繁 出現的詞,聚合索引token詞,以減少查詢涉及的倒排列表的聚合/合并開銷。接著,使用超 圖表示用戶查詢與倒排列表間的訪問模式,把垂直劃分問題歸約為超圖劃分問題;(2)在水 平劃分中,通過超圖刻畫用戶查詢與實體間的訪問模式信息,把水平劃分問題歸約為超圖 劃分問題,使得不同索引節點的負載保持均衡,并降低查詢涉及的通信開銷。(3)結合前面 的垂直劃分和水平劃分策略,構建了二維混合索引。在此基礎上,從查詢吞吐量與容錯率角 度考慮,利用索引副本策略,將二維混合索引擴展為三維索引。最后,通過在公開數據集 DBLP上進行大量實驗,實驗結果表明本發明方法在吞吐量、查詢響應時間及擴展性等方面 優于已有方法。
【附圖說明】
[0067]圖1是基于劃分的數據空間倒排索引圖,圖中:(a)為基于token的垂直劃分示意 圖,(b)為基于實體的水平劃分示意圖,(c)為基于混合劃分的數據空間索引示意圖;圖2是 垂直劃分索引框架圖,圖3是表示查詢日志與壓縮倒排索引關系的3路超圖劃分示意圖;圖4 是水平劃分索引框架示意圖;圖5表示查詢日志與實體關系的3路超圖劃分示意圖;圖6為二 維索引架構圖;圖7為三維維索引架構圖;圖8為涉及某索引節點數的查詢比例對比圖;圖9 為MIL與2D-IL方法的容災能力對比圖;圖10為不同K值下的性能對比圖;圖11為不同并發查 詢數量下的性能對比圖,圖中:(a)為不同并發查詢數量下的平均響應時間對比圖,(b)為不 同并發查詢數量下的平均吞吐量對比圖;圖12為不同索引節點下的性能對比圖,圖中:(a) 不同索引節點下的平均響應時間對比圖,(b)不同索引節點下的平均吞吐量對比圖;圖13為 不同數據集大小對性能的影響圖。
【具體實施方式】
[0068]【具體實施方式】一:如圖1所示,本實施方式針對所述的基于負載均衡和查詢日志的 數據空間多維索引方法的實現進行詳細描述如下:
[0069] 一、為成功把倒排索引擴展至數據空間中,把屬性標簽和屬性值聚合編碼為token 詞:
[0070] 定義Token,對于一個屬性-值對(a,v),它對應的token定義為t = v//a。
[0071]本質上,一個實體往往是由一組屬性-值對組成(注意,內容可以看成一個屬性-值 對)。換句話說,一個實體事實上是一個tokens向量(ti,t2, . . .,t|D|),其中D表示數據空間中 所有不同的token標識。
[0072] 定義實體向量,一個實體向量定義為o = (wi,W2, . . . .,w|d|),其中Wi表示token詞ti 的權重。
[0073] 基于劃分的數據空間倒排索引(PIL)是在擴展倒排索引(EIL)的基礎上,通過引入 水平劃分(基于實體的劃分)和垂直劃分(基于token詞的劃分)的思想改進得到的一種新型 數據空間索引。該索引是目前數據空間中最先進的索引技術。具體來說,一個PIL由D中的詞 匯表和一組混合劃分列表組成。每個混合劃分列表包含頭部和實體列表集兩部分。對于每 個頭部,它包含一個或多個token的聚合詞t及其對應出現的水平劃分;對于相應的每個實 體列表集,實體集按照水平劃分分為不同塊,在每個塊中,相應的實體集根據垂直劃分進一 步分割為一組子實體列表,如圖1所示。
[0074] 圖1展示了基于劃分的數據空間倒排索引框架。在圖1(a)的垂直劃分索引中,對于 token詞d和f來說,d和f的倒排列表合并在一起,即頭部對應聚合token詞{d,f},相應的實 體列表集由一組實體列表組成,每個實體列表對應d和f的一種組合(如d和f均包含)。在圖1 (b)的水平劃分列表中,對于token詞a來說,把a對應的倒排列表劃分為不同的類別。即頭部 表明a在哪些劃分中出現,對應的實體列表集則按照相應的劃分(S1,S3, S4)分割為多個實 體列表。在圖1(c)的混合劃分索引中,則綜合了上述兩種劃分方法。例如,對于token詞c、g 和m來說,生成混合列表2,其中頭部包括聚合token詞{c,g,m}和它出現的水平劃分(SI,S2, S3,S4 ),它對應的實體列表集則由所屬水平劃分的實體列表組成,每一個實體列表由對應 不同token詞組合的子實體列表組成。
[0075] 定義劃分向量,假定〇為劃分P中的任意實體,那么劃分P可以表示為: P ~ 其中,說為劃分P中token詞ti的權重,Εφ 濃好(0''叫) :? ? 〇
[0076] 一旦采用向量表示劃分P和查詢Q={qi,q2, . . .,q|D|},那么劃分P和查詢Q的相似性 可以采用公式(1):
[0078]其中,|D|表示所有tokens的大小,事實上,sim(P,Q)準確表達了劃分P中實體與查 詢的分數最大上界。
[0079] 定理1:假定劃分P由一組實體組成,t是P中任意實體,那么實體t與查詢Q的相似度 存在上界,BPP.bound(Q) =sim(P,Q) ^sim(t,Q) ·
[0080] 定理2:假定劃分. . .Pm按照與查詢Q的相似度降序排序,V是在前g個劃分中 top-k應答相似性分數最小的實體。對于下一個劃分Pg+i來說,如果sinKi/,Q) >sim(Pg+i, Q),那么劃分Pg+i,Pg+2,...,Pm均可以在查詢中被安全地剪枝掉。
[0081 ] 二、問題提出
[0082] 在上面的索引框架中,其劃分策略是基于以下三個觀察:(1)在數據空間的實體集 合中,20%的屬性對同時出現的概率為1; (2)同領域(類別)的實體共享相似的屬性,不同領 域的實體的屬性往往彼此不相同;(3)用戶往往對top-k應答感興趣,而不是全體應答。基于 觀察1,垂直劃分策略選擇在實體中頻繁一起出現的tokens詞進行聚合,從而顯著減少大數 據集下倒排列表聚合和合并的代價;水平劃分策略則按照水平劃分把單個倒排列表劃分為 不同的子倒排列表,從而提前剪枝掉大量的、與查詢相關性較低的子倒排列表。其剪枝理論 依據定理1和2。
[0083] 然而,該索引也存在以下問題:(1)選擇哪些tokens詞進行聚合只依賴于數據集中 的"二八"偏斜現象。而在實際應用中,用戶查詢往往也存在偏斜現象。因此,在查詢日志中 經常一起出現在實體中tokens也應該進行聚合。(2)由于水平劃分基于觀察2和3,因此可能 使得不同類別劃分的實體列表集產生嚴重的偏斜。(3)在大數據量的情況下,內存的大小成 為性能瓶頸,直接影響著查詢性能的好壞。由于數據集過大,導致索引的空間開銷非常巨 大,從而使得內存無法加載龐大的索引。
[0084] 因此,需設計出一種分布式的數據空間多維索引,旨在把倒排索引分布到不同的 索引節點中,使得各個索引節點保持負載均衡,同時最小化查詢處理涉及的通信開銷和減 少搜索空間。
[0085]三、數據空間多維索引
[0086] 本發明提出了一種基于負載均衡與超圖的垂直劃分索引技術以及基于負載均衡 與超圖的水平劃分索引技術;最后,從查詢系統吞吐量和容錯率角度出發,提出了一種分布 式的多維索引技術。
[0087] 3.1基于負載均衡與超圖劃分的垂直劃分索引,先概述垂直劃分索引框架,然后詳 細描述垂直劃分策略。
[0088] 1)垂直劃分索引框架
[0089] PIL索引中垂直劃分索引的問題是:(1)聚合tokens詞的選擇只依賴于數據集中的 token詞的偏斜影響;(2)該索引不適用于大數據量環境。然而,在實際應用中,用戶查詢日 志蘊含大量高價值信息,比如,一些查詢tokens頻繁地共同出現在實體中。因此代替只使用 實體集中tokens偏斜信息,綜合使用查詢日志和實體集中tokens偏斜信息來壓縮數據空間 倒排索引,形成一組聚合后的tokens詞;然后,按照負載均衡思想和超圖劃分理論把這些 tokens詞的倒排列表均衡地分布到相應的索引節點中。
[0090] 例如,在圖2中,假定a、e、h和i總是一起出現在相同的實體或用戶查詢中,因此,這 些tokens詞對應的倒排列表總是相同的,從而聚合這些tokens詞來壓縮倒排索引。其優點 是減少硬盤1/0訪問開銷以及避免查詢處理過程中這些tokens對應倒排列表的聚合。此外, 除了壓縮出現情況完全一樣的tokens外,還對具有相似倒排列表的tokens進行壓縮。例如, 在索引節點2中,由于tokens詞d和f頻繁一起出現在實體和tokens詞d和j頻繁地共同出現 在用戶用查詢中,因此對d、f和j進行聚合壓縮,形成一個垂直劃分列表。即,頭部是d、f和j 聚合tokens詞,實體列表集則是由一組子實體列表組成,每個子實體列表對應tokens詞d、f 和j的一種組合.最后,把這些垂直劃分列表分布到多個索引節點中,使得這些節點負載均 衡同時最小化查詢涉及的索引節點數量。例如,圖2把倒排索引分布到3個索引節點中。
[0091] 2)基于負載均衡與超圖劃分的垂直劃分策略
[0092] 從圖2中可知,垂直劃分索引面臨兩個關鍵挑戰:(1)聚合tokens詞的選取問題; (2)垂直索引分布問題,即如何較好地分布到不同索引節點,從而支持分布式查詢處理,進 而提高查詢處理性能。
[0093] 聚合tokens詞的選取
[0094]在用戶查詢中,詞的頻率也存在偏斜問題,因此代替只考慮實體中tokens詞的偏 斜問題,綜合考慮實體中tokens和查詢日志中tokens的偏斜現象,通過聚合頻繁地共同出 現在實體或者查詢日志中的tokens詞來壓縮索引。例如,對于tokens詞d、f和j來說,如果只 考慮實體中tokens詞的偏斜情況,貝lj聚合tokens詞d和f (如圖1 (a)),事實上,在真實應用 下,tokens詞d和j可能頻繁一起出現在查詢日志,因此,為減少查詢處理中倒排列表的合并 代價,tokens詞d和j也應該聚合在一起,從而壓縮索引。所以,壓縮tokens詞d、f和j可能是 一個更佳的選擇.
[0095] 聚合tokens詞的選取問題本質上是tokens詞集合劃分問題,其中每個劃分對應一 個垂直劃分列表頭部.當把實體和查詢日志中查詢看作一個事務,同時實體包含的tokens 詞集合或者查詢包含的tokens詞集合看作事務對應的項集時,tokens詞劃分問題類似于頻 繁項集挖掘問題,但顯著區別是頻繁項集是互不相交的。為此,改進經典的FP-growth算法, 給出了一個選取聚合tokens詞的算法TokensSelection,算法TokensSelection(TDB,ξ,T) 過程如下:
[0096]輸入:TDB是一個事務數據庫,其中每個事務為一個實體或者查詢日志中一個查 詢,事務對應的項集為實體包含的tokens詞集合或者查詢包含的tokens詞集合,ξ是最小支 持度;
[0097]輸出:Τ為tokens詞的劃分,初始為空;
[0100] 具體來說,首先掃描事務數據庫TDB,尋找非頻繁1-項集NF和頻繁1-項集F,并對F 按照支持度降序進行排序(行1)。由于NF中每個token詞都是非頻繁的,因此不需要聚合,為 此,NF中每個token詞單獨作為一個垂直劃分列表加入到集合T中(行2);接下來,對于F來 說,再一次掃描TDB,構建FP樹,并對F中每個tokenk詞分別調用FP-growth (FP樹,tokenk)算 法,從而產生所有的頻繁項集,記為freq_Set(行3-4)。為保證頻繁項集互不相交,按照頻繁 項集對頻繁項數量和支持度順序對freq_ Set進行降序排序,從而使得越靠前的頻繁項集, 頻繁項的數量越大并且頻繁項集的支持度也越大(行5)。最后進行不斷迭代,直至freq_ Set 為空。在每次迭代中,先取出第一個頻繁項集top,并把top作為一個垂直劃分加入到集合T 中,同時從freq_set中移除top.然后從freq_set中移除與top相交不為空對所有頻繁項集 (行6-11)。算法中FP樹構建和子算法FP-growth(FP樹,tokenk)的詳細細節本章不再贅述, 感興趣讀者參考文獻。
[0101] 2垂直索引分布策略
[0102] 盡管算法TokensSelection(TDB, ξ,T)能夠利用查詢日志和實體中tokens詞的偏 斜現象聚合一些頻繁地、共同出現的tokens詞,從而降低潛在查詢涉及的倒排列表的聚合 代價和存儲空間,但是隨著數據集激增,倒排索引大小仍然十分龐大,這顯然成為內存的瓶 頸,從而影響查詢性能。為此,一種直觀的方法就是按照聚合tokens詞均勻劃分思想設計一 個分布式索引。然而,在實際中,垂直劃分列表的長度和查詢日志對垂直劃分列表的訪問頻 率存在嚴重偏斜,這將導致查詢負載高度不均衡,因此需要一種高效的垂直索引分布策略。 它基于聚合tokens詞,把壓縮后的倒排索引分布到相應的索引節點集中,使得保持各個索 引節點負載均衡,同時最小化索引節點與索引服務器的通信開銷。
[0103]給定一個查詢集合Q= {qi,q2, . . .,q|Q|}、詞匯表T= {ti,t2, . . .,t|T|}、索引節點集 合i s = {i Si,i s2,...,i sm}和壓縮后的倒排索引i = 乂,, ),(Ο,,Λ…,U,,)!,其中氣是 聚合tokens(包括一個或多個U,不同的&交集為空且全體&并集為T)并且和訪問頻率 freqi關聯,U是ti對應的倒排列表,每個% 。
[0104]定義超圖,一個超圖H=(V,E)是由頂點集合V和超邊集合E組成,其中每條超邊幻 e E與V中頂點子集相連,每個頂點Vi e V具有一個權重Wi。
[0105] 超圖是簡單圖的一種泛化形式,并且超邊反映了多個頂點間的關系。在本小節中, 每個頂點表示聚合tokens詞,其權重為訪問該聚合tokens詞對應倒排列表的開銷,每條超 邊表示查詢中tokens詞在哪些聚合tokens詞4:中出現,即一個查詢與相應的每一個進行 連接,如圖3所示,其中實心黑點表示一個查詢,橢圓表示一個tokens詞4, ·
[0106] 定義m路超圖劃分,nilV^V^ . . .,Vm}是一個m路的超圖劃分當且僅當每個部分 νι^φ、ν?? I νι=φ 且U^ =F 〇
[0107] 定義λ-平衡的超圖劃分,超圖劃分π是λ-平衡當且僅當對每一個部分Vke π,wk彡 (l+A)Wavg,其中權重屺,Wavg是所有Wk的平均權重。
[0108] 對于超圖來說,如果超邊ej e E與部分Vk中一(多)個頂點相連,則稱超邊ej e E與部 分V k的相連,其連通度Φ ( e j,V k ) = 1。因此超邊e j e E與劃分Π 的連接度 扒&匕),即與超邊相連接的部分數。本質上m路超圖劃分問題可以定義為 尋找一個λ-平衡的超圖劃分,使得「(Π ) = Π )最小。
[0109]從前面的敘述可知,垂直索引劃分的目標是:利用查找日志和實體的偏斜信息,生 成一組互不相交的聚合tokens詞,然后利用用戶查詢日志中訪問倒排列表信息均衡地把聚 合tokens詞對應的倒排列表分布到不同索引節點中,并使得通信開銷最小。也就是說,利用 查詢與聚合tokens詞的交互信息,按照處理聚合token詞的計算負載情況,把所有聚合 tokens詞均衡地劃分到不同對索引節點中,并使得查詢涉及的索引節點數量最小。此時,把 聚合tokens詞看作超圖中頂點,單個索引節點ISk中包含的所有聚合token詞看作超圖中頂 點集的一個部分Vk辛Φ,查詢日志中一個查詢qjeQ看作一條超邊 e」eE,查詢日志中所有查 詢訪問索引節點ISk中倒排列表的開銷看作超圖劃分Π 中部分Vk的總權重Wk,所有查詢涉及 的所有分布式節點數量看作超圖劃分Π 的總通信開銷Γ(Π ),因此,垂直索引分布問題可 以歸約為λ-平衡的超圖劃分問題,即Π 中每個部分Vk對應分配給索引節點ISk的聚合tokens 集合Tk,每個Wk對應ISk的所有計算負載,Γ (Π )對應查詢Q涉及的總通信開銷。
[0110]從實體偏斜角度考慮,本發明利用齊夫定律概率來評估排名第i個的token詞^在 實體中的概率,如公式(2)所示:
[0112] μ代表了實體中tokens詞的偏斜程度。例如,倒排列表中80 %的實體資源含有的 20 %的tokens詞,貝lj參數μ = logO. 8/logO. 2 = 0.14。對于壓縮后的垂直劃分列表來說,它合 并了多個token詞的倒排列表,因此聚合tokens詞^的概率如公式(3)所示。
[0113] /^) = Σ?,⑶
[0114] 假定f(ti)為token詞ti的訪問頻率,即查詢日志中token詞ti的頻率,貝lj聚合 tokens詞^的訪問頻率為所有tokerH^A e的組合頻率,如公式(4)所示。
[0116]在查詢處理中,影響計算負載的因素主要有倒排列表大小及其訪問頻率,因此頂 點^的權重^采用公式(5)進行度量。
[0118] 其中|E|表示實體個數,|?|表示每個實體E的平均tokens詞個數。
[0119] 圖3展示了采用負載均衡與超圖的垂直劃分索引的例子.其中tokens詞a、b、e、h和 1分布到索引節點ISi,tokens詞d、f、j和k分布到索引節點IS2,tokens詞c、m、g和i分布到索 弓丨節點IS 3,使得索引節點ISi、IS2和IS3的負載均衡。按照這種分布,查詢{ql,q2,q3}僅被索 引節點取處理,查詢{q4,q5,q6}僅被索引節點IS 2處理,查詢{q7,q8}僅被索引節點IS3處 理,而查詢q9被索引節點ISjPIS 2,查詢qlO被索引節點ISUS2和IS3處理,因此總通信代價 Γ (Π )=8Χ0+1Χ2+1Χ3 = 5〇
[0120] 超圖劃分是一個ΝΡ-完全問題,為此采用經典的多級的、直接的、Κ-路超圖劃分算 法進行近似劃分。它主要包含三個階段:基于高連通匹配的多級粗劃階段、基于迭代二分的 初始劃分階段以及多級Κ-路細化階段.下面簡單介紹每個階段過程,詳細細節參考文獻。
[0121] 基于高連通性匹配的多級粗劃階段:核心思想是通過m級連續的粗化過程,把原始 的超圖妒轉換為一個足夠小的超圖Hm,使得盡可能保持原始超圖的結構。在每級粗化過程 時,根據頂點的高連通性匹配啟發式原則,把當前超圖H 1中頂點集分組為一個集群,集群中 的頂點合并為一個超頂點。啟發式規則如下:隨機訪問一個頂點,已訪問頂點vi eV1與未訪 問的頂點v j e V1相匹配,當且僅當vi e V1和v j e V1共享的超邊數量最多.
[0122] 基于迭代二分的初始劃分階段:核心思想是采用多級迭代二分機制把最粗的超圖 Hm劃分為K個部分。在每個二分步驟中,采用貪婪的超圖增長啟發式二分中間超圖。在初始 劃分階段的最后,不斷執行頂點移動操作,直到超圖劃分是λ-平衡的。
[0123] 多級Κ-路細化階段:核心思想是從最粗超圖『開始,迭代地執行細化操作和投影 操作,直至最細超圖Η*3。在細化操作時,基于FM啟發式,移動Κ部分中的頂點,來調整細化當 前超圖Η 1的劃分Π 1,并使得在保持劃分的各部分負載均衡的條件下總通信開銷Γ ( Π )最 小。在投影操作時,把當前超圖Η1和細化的劃分Π 1投影到上一級的超圖Η1-1和劃分Π 1-1中。
[0124] 3.2基于負載均衡與超圖劃分的水平劃分索引:先給出水平劃分索引框架,然后詳 細描述水平劃分策略。
[0125] (1)水平劃分索引框架
[0126] PIL索引中水平劃分索引的問題是:(1)不同類別的實體集大小可能存在嚴重的偏 斜問題,從而導致水平劃分負載不均衡;(2)該索引不適用于大數據量環境。然而,在實際應 用中,用戶查詢日志反映不同時期的用戶興趣信息,因此可能存在興趣偏斜現象,這將導致 水平劃分的倒排列表的負載不均衡問題。為解決上述問題,按照負載均衡思想和超圖劃分 理論把這些實體集的倒排列表分布到相應的索引節點中。
[0127] 例如,圖4展示了水平劃分索引框架。在圖4中,假定數據空間中實體根據相似性和 負載均衡劃分為Α、Β和C三類以及一個實體只能屬于一個類別,則Α、Β和C三類所屬的實體構 建的倒排索引分別分布到索引節點1、2和3中,其中有些tokens詞可能出現在多個索引節點 中,如tokens詞a或者f。
[0128] (2)水平劃分策略
[0129] -方面,從實體角度出發,根據實體間的相似性(例如,屬性標簽)進行劃分,可能 導致不同劃分中實體數量的偏斜問題,從而導致不同索引節點的負載嚴重不均衡;另一方 面,隨著時間的演化,用戶查詢對索引節點的訪問頻率(或者更準確地說,倒排列表的訪問 頻率)的差距不斷加大,進而導致訪問頻率嚴重偏斜,因此在剪枝的作用下,將使得索引節 點出現嚴重的負載不均衡現象。為此,需要一種高效的水平索引分布策略。它基于查詢日志 的訪問模式信息與超圖理論,把實體劃分到不同的索引節點中,使得各個索引節點負載保 持均衡以及索引節點內部任意兩個實體的相似性較高,同時最小化索引節點與索引服務器 的通信開銷。
[0130] 給定一個查詢集合Q= {qi,q2, · · ·,q|Q|}、實體集合0= {〇1,〇2, · · ·,〇|〇|}、實體間的 相似性矩陣A={sim(〇i,〇j) |l<i,j彡|0| }和索引節點集合ISyiShlS% . . .,ISn},其中 sim(〇i,〇j)表示兩個實體的相似性,每個查詢% D
[0131] 定義(λ,η)-平衡且相似的超圖劃分,超圖劃分Π 是(λ,η)-平衡且相似,當且僅當,
[0132] (1)對每一個部分Vke Π K(l+A)Wavg,其中權重% 是所有Wk的平 均權重;
[0133] (2)對每一個部分VkG Π ,任意兩個頂點 表示兩個頂點的相似性。
[0134] 對于超圖來說,如果超邊ejeE與部分vk中一(多)個頂點相連,則稱超邊ejeE與部 分V k的相連,其連通度Φ ( e j,V k ) = 1。因此超邊e j e E與劃分Π 的連接度 扒6,11)=^^1的9&),即與超邊相連接的部分數。事實上,111路超圖劃分問題也可以定義 為尋找出一個(λ,η)-平衡且相似的超圖劃分,使得「(π) = Σε_Κ(〃.,π)最小。
[0135] 從前面的敘述可知,水平索引劃分的目標是:基于查詢日志的訪問模式信息與超 圖理論,把實體劃分到不同的索引節點中,使得各個索引節點負載保持均衡以及索引節點 內部任意兩個實體的相似性較高,同時最小化索引節點與索引服務器的通信開銷。此時,把 每個實體0i詞看作超圖中頂點Vi ev,其權重為處理該實體〇i的計算負載Wi,單個索引節點 ISk中包含的所有實體Ok看作超圖中頂點集的一個部分Vk# Φ,并且ISk中實體共享相似的 屬性,查詢日志中一個查詢qj e Q看作一條超邊ej e E(這反映了查詢中tokens詞在哪些實體 中出現,因此查詢與相關的每個實體相連),查詢日志中所有查詢訪問索引節點IS k中倒排 列表的開銷看作超圖劃分π中部分Vk的總權重Wk,所有查詢涉及的所有分布式節點數量看 作超圖劃分Π 的總通信開銷Γ(Π ),因此,水平索引分布問題可以歸約為(λ,η)-平衡的超 圖劃分問題,即π中每個子頂點集vk對應分配給索引節點is k的實體集合〇k,每個wk對應isk 的所有計算負載,每對頂點的相似性對應每對實體間的相似性,r ( Π )對應查詢Q涉及的總 通信開銷。具體來說,使用超圖H=(V,E)表示用戶查詢集與水平劃分中實體集之間的交互。 在超圖Η中,每個實體 〇i代表一個頂點Vi e V,每個查詢qj e Q代表一條超邊e」eE,每個頂點Vi 的權重Wi代表處理該實體〇i的計算負載,另外,每個頂點記錄一組它所包含tokens詞的訪問 頻率。
[0136] 假定f(ti)為token詞ti的訪問頻率,即查詢日志中token詞ti的頻率,在查詢處理 中,影響計算負載的因素主要有實體大小及其訪問頻率,因此頂點 Vl的權重^采用公式(6) 進行度量。
[0137] ^ ^/(Ο?ΤΓΜΟ (6)
[0138] 其中|Τ|表示每個實體0的平均tokens詞個數。
[0139] 圖5演示了采用負載均衡與超圖的水平劃分索引的例子。其中,實體〇1、〇2和〇3分布 到索引節點ISi,實體〇4、〇 5和06分布到索引節點IS2,實體07、08、09和〇1〇分布到索引節點IS 3, 使得索引節點ISi、IS2和IS3的負載均衡并且每個索引節點內部任意兩個實體間的相似性均 較高。按照這種分布,查詢{ql,q2,q3}僅被索引節點ISi處理,查詢{q4,q5,q6}僅被索引節 點IS 2處理,查詢{q7,q8}僅被索引節點IS3處理,而查詢q9被索引節點ISjPIS2,查詢qlO被 索引節點ISi、IS 2和IS3處理,因此總通信代價Γ (11)=8\0+1\2+1\3 = 5。此外,本部分也 是采用上一節描述的超圖劃分算法來劃分超圖,就不再贅述。
[0140] 3.3多維索引:
[0141] 先介紹了二維劃分索引框架(2D-IL),它結合基于負載均衡與超圖劃分的垂直劃 分索引和基于負載均衡與超圖劃分的水平劃分索引。然后從吞吐量和容錯率角度出發,擴 展2D-IL為三維索引框架(MIL)。
[0142] (1)二維劃分索引框架
[0143] 圖6展示了二維索引架構。與只在一個節點構建的集中式PIL索引不同的是,我們 的二維索引分布在不同索引節點中,因此每個索引節點中索引花費對存儲空間顯著降低。 也就是說,二維索引邏輯上可以看成一個NXM的集群。在行維度,數據空間索引可以看成是 一個基于負載均衡與超圖劃分的水平劃分索引,即按照實體級劃分。在列維度,數據空間索 引可以看成是一個基于負載均衡與超圖劃分的垂直劃分索引,即按照聚合tokens詞劃分。 每個索引節點對應tokens詞壓縮后的倒排索引。例如,在第i行和第j列中的索引節點設沖 (如黑色實心點所示),它包含tokens詞{a,b, . . .,f}和實體{〇3〇, . . .〇5q},其對應的倒排索 引格式如虛線箭頭指向的倒排索引。即,在索引節點IS^中,其索引詞匯為原始詞匯的一個 子集{a,b, . . .,f},這些詞匯在垂直劃分后形成三個聚合tokens詞("abc"、"de"和"f"),這 些聚合tokens詞對應實體集都同屬于一個水平劃分。
[0144]當提交一個查詢時,可以根據涉及的聚合tokens詞和計算的相關性分數較高的劃 分(見定理1和定理2)迅速定位到較少數量的索引節點,然后并行訪問這些索引節點。因此 本索引的優點如下:(1)各個索引節點負載均衡;(2)查詢處理時,通信開銷較低;(3)剪枝率 尚,從而提尚了查詢性能。
[0145] (2)三維劃分索引框架
[0146] 在查詢處理過程中,當某個索引節點(尤其是查詢涉及的索引節點)出現故障時, 則可能影響top-k查詢應答;另一方面,隨著用戶查詢的并發數的激增,查詢的吞吐量就構 成一個重要瓶頸。為此,通過為二維索引中每個索引節點IS^(g卩,圖6中對應化和…的單元 格)復制D份,從而構成三維立方體的多維索引,如圖7所示。注意,在索引節點ISu的每個副 本之間保證通信,旨在防止該索引節點IS^失敗時導致沒有可用的查詢結果的情況。
[0147] 圖7展示了三維索引架構。三維索引邏輯上可以看成一個NXMXD的3D立方體,其 中D是復制的份數。例如,在索引號(Ni,Mj,Dk)對應的單元格中,黑色點表示索引節點IS ijk涉 及索引token詞{a,b,…,f}、實體{〇3〇,…〇5〇}并且是第k個備份。
[0148] 當一個查詢Q = tlAt2A. . .AU被提交時,其處理流程大致如下:(1)找出涉及 token詞{ti,t2,. . .,tn}的列集合{Mj}; (2)對于這些列集合{Mj},根據定理1和2以及公式(1) 計算它們中行劃分與查詢的相似性,并選擇出相似性分數大于某個閾值的行集合{N」}; (3) 在(Nj,Mj)對應的備份中,隨機選擇一個立方體;(4)在確定所有的小立方體后(比如,(Ni, Mj,Dk)對應的立方體),把相應的子查詢并發地發送到對應的索引節點ISijk中,進行并發查 詢;如果當前索引節點IS ljk失敗(比如故障因素),那么利用通信機制把子查詢發送隨機發 送到其它副本的索引節點中,比如(Ni,Mj,Di)對應的索引節點ISiji;(5)最后把所有并發查 詢結果進行綜合(例如,進行交運算)并返回給用戶。
[0149] 四、實驗結果與分析
[0150] 首先介紹實驗設置情況,然后從效果、性能和可擴展性方面評估本發明方法(包含 基于負載均衡與超圖劃分的垂直劃分索引(HP-VIL)、基于負載均衡與超圖劃分的水平劃分 索引(HP-HIL)和多維索引(MIL))與基準索引方法(包含垂直劃分索引(VIL)、水平劃分索引 (HIL)和混合劃分索引(PIL))。
[0151] 4.1實驗設置
[0152]本實驗使用來自2015年3月release版本的DBLP數據作為實驗所需的基本數據集, 抽取的實體類別包括論文、博士論文、作者、會議、期刊、大學機構,數量大小總共大約4.3M。 抽取原則如下:(1)論文實體來自于inproceedings記錄或者key鍵以"journals"為前綴的 article記錄;(2)博士論文實體來自于phdthesis記錄;(3)作者實體來自于WWW記錄或者 author標簽;(4)會議實體來自于key鍵以"conf"為前綴的;[叩1'0066(1;[1^8記錄中的 booktitie標簽;(5)期刊實體來自于journal標簽或者key鍵以"journals"為前綴的 inproceedings記錄中的booktitle標簽;(6)大學機構來自于school標簽。
[0153]由于DBLP數據集沒有提供相應的查詢日志,因此,本章從預處理后的DBLP數據集 中人工合成了具有偏斜特性的用戶查詢日志。它包含10萬條查詢,其中前6萬條用于構建超 圖,構建時采用kPaToH超圖劃分工具(負載系數設置為5%,相似性閾值設置為0.5);中間2 萬條用于喚醒系統查詢;最后2萬條用于真實性能評估。實驗過程中考慮6種不同的并發查 詢等級(即,并發查詢數111=1,8,16,32,48,64)。垂直劃分中索引節點數默認設置為8,水平 劃分中索引節點數默認設置為8,復制份數設置為3。
[0154]實驗環境設置如下:采用9個節點、網絡互連的PC集群。其中一臺為中央代理器 (Broker,不存儲劃分索引),其它為客戶機(Worker)。每臺PC主機的配置為Intel(R)Core (TM) i5-4570CPU 3.20GHz,內存容量為4G,硬盤容量為1TB,操作系統為WIN 7(64bit),算法 均在Java語言下實現。
[0155] 4.2效果評估
[0156] (1)劃分質量
[0157] 實驗1評估了本文多維索引MIL與基準索引方法的混合劃分索引PIL的劃分質量情 況。由于基準測試方法PIL是分配在一個索引節點中,因此,為公平起見,本文對PIL劃分采 用順序循環分配策略,從而分配給所有索引節點。圖8橫坐標表示查詢處理過程中涉及的索 弓丨節點數量(Broker節點除外),縱坐標表示涉及某索引節點數的查詢比例。從圖8可知,在 減少查詢涉及的索引節點數量方面,本方法MIL明顯優于PIL方法。例如,在MIL方法中,大約 25%的查詢只被1個索引節點處理,而PIL方法只有14%。主要原因是:本方法劃分的優化目 標是最小化通信開銷(換句話說,查詢涉及的索引節點數量)。這表明本方法能夠有效地提 高共同訪問的倒排列表集存儲在同一索引節點的概率。
[0158] (2)容災能力
[0159]實驗2評估了本文多維索引MIL與不采用復制策略的二維索引(2D-IL)的容災能力 情況。圖9中橫坐標表示索引節點的故障率,縱坐標表示top-k查詢平均準確率,從圖9中可 知,本方法的容災能力顯著優于二維索引(2D-IL)方法。其原因是MIL中一個維度就是索引 復制,這樣即使某(些)索引節點出現故障,也可以通過其備份節點的索引返回局部查詢結 果,從而不影響全局查詢結果。
[0160] 4.3性能評估:評估性能的標準是查詢響應時間和吞吐量。
[0161 ] (1)頻繁K項集大小對性能的影響
[0162] 實驗3評估了頻繁K項集大小對兩種垂直劃分(HP-VIL法與VIL法)性能的影響。為 公平起見,HP-VIL法以劃分數為1的情況作為比較。圖10橫坐標表示頻繁K項集的K值大小 (從1到5 ),縱坐標表示查詢的平均查詢響應時間。理想情況下,聚合tokens詞壓縮效果好的 索引方法花費的平均查詢響應時間更少。從圖10可知,在K值為1時,兩種方法性能一樣,這 是因為均沒有進行索引tokens詞的壓縮;而隨著K值變大,HP-VIL法明顯優于VIL方法,這是 因為除了考慮實體中頻繁的tokens詞外(如VIL法),本方法HP-VIL還考慮了查詢日志中頻 繁出現在倒排列表的tokens詞。另外,隨著K值進一步變大,兩種方法的效果可能反而下降。 這是因為存在一些只包含聚合tokens詞中的部分tokens詞的查詢,這導致一些1/0開銷用 于讀取剩余部分tokens詞信息。
[0163] (2)不同并發查詢數量對性能的影響
[0164] 實驗4評估了不同并發查詢數量對性能的影響。性能主要從查詢響應時間和吞吐 量來度量,實驗中頻繁項集K為4,垂直劃分與水平劃分的索引節點數均設置為8,索引復制 份數設置為3。圖11(a)展示了在不同的并發查詢數量下本文方法(包括HP-VIUHP-HIL與 MIL)與基準測試方法(VIL、HIL與PIL)的平均查詢響應時間對比情況。隨著并發查詢數量的 增加,平均響應時間不斷增加,這主要是因為:并發查詢數量的增加導致索引節點處理的查 詢數量大幅增加。從列方向看,在相同并發查詢數下,(l)HP-VIL方法優于VIL方法,這主要 是由于本文在聚合tokens詞時考慮了查詢日志的信息以及索引節點間負載均衡,還使得查 詢通信開銷最小化;(2)HP-HIL方法優于HIL方法,這主要是由于本文在劃分實體時不僅考 慮實體間相似性,還考慮劃分的負載均衡問題,從而剪枝了大量潛在不相關的候選實體; (3)MIL方法優于PIL方法,這主要是由于一方面在劃分時候就致力于負載均衡,另一方面通 過索引復制的策略,進一步加強負載均衡且降低索引節點的負載量。圖11(b)展示了在不同 的并發查詢數量下本文方法(包括HP-VIL、HP-HIL與MIL)與基準測試方法(VIL、HIL與PIL) 的吞吐量對比情況。從圖11(b)中可知,(1)在并發查詢數為8時,吞吐量顯著增加,但隨著并 發查詢數進一步增加,吞吐量趨于平穩狀態。這主要是因為:提交的查詢數還沒有達到索引 節點的硬盤訪問上限,而并發查詢數從16開始,每個索引節點處理的查詢太多,從而超過硬 盤訪問上限;(2)HP-HIL方法明顯優于HIL方法。這是因為本文方法劃分使得各索引節點負 載較均衡;(3)HP-VIL方法優于VIL方法。原因在于:由于在基準測試方法中列表大小及其訪 問頻率的高度偏斜,索引節點負載不均衡;(4)MIL方法明顯優于PIL方法。本方法的優化目 標是負載均衡,提高了索引節點的利用率。此外,二維索引的復制增加了系統整體處理能 力。
[0165] (3)不同索引節點數量對性能的影響
[0166] 實驗5評估了不同索引節點數量對性能的影響。主要從查詢響應時間和吞吐量來 度量,實驗中頻繁項集K設置為4,并發查詢數設置為64。從圖12可知,隨著索引節點數量的 增加,本方法優于基準測試方法,并且隨著索引節點數的增加,性能更佳。主要原因是本文 方法劃分后的索引節點負載相對較均衡。另外,隨著索引節點數增加,每個索引節點的負載 降低。
[0167] 4.4擴展性評估
[0168] 實驗6評估了不同數據集大小對性能影響。本實驗采用top-10查詢的響應時間進 行度量。圖13中橫坐標表示不同數據集大小(百萬個實體為單位),縱坐標表示top-10的查 詢響應時間。從圖13中可知,本文方法在不同數據集大小方面展現了較好的擴展性。
【主權項】
1. 一種基于負載均衡和查詢日志的數據空間多維索引方法,所述方法將倒排索引分布 到不同的索引節點中,使得各個索引節點保持負載均衡,其特征在于:所述方法為: 結合基于負載均衡與超圖劃分的垂直劃分索引和基于負載均衡與超圖劃分的水平劃 分索引得到二維劃分索引框架(2D-IL),從吞吐量和容錯率角度出發,擴展二維劃分索引框 架(2D-IL)為Ξ維索引框架(MIL),基于Ξ維索引框架(MIL)實現數據空間多維索引方法。2. 根據權利要求1所述的一種基于負載均衡和查詢日志的數據空間多維索引方法,其 特征在于:所述方法的具實現過程為: 步驟一、獲得二維劃分索引框架(2D-IL)的過程為: 步驟一一、確定基于負載均衡與超圖劃分的垂直劃分索引 確定垂直劃分索引框架 使用查詢日志和實體集中tokens偏斜信息來壓縮數據空間倒排索引,形成一組聚合后 的tokens詞;然后,按照負載均衡和超圖劃分把所述tokens詞的倒排列表均衡地分布到相 應的索引節點中; 基于負載均衡與超圖劃分的垂直劃分 1 )、聚合tokens詞的選取: 通過聚合頻繁地共同出現在實體或者查詢日志中的tokens詞來壓縮索引; 2)、給出垂直索引分布方式 所述垂直索引分布方式基于聚合tokens詞,把壓縮后的倒排索引分布到相應的索引節 點集中,使得保持各個索引節點負載均衡,同時最小化索引節點與索引服務器的通信開銷; 步驟一二、確定基于負載均衡與超圖劃分的水平劃分索引 水平劃分索引框架的確定:按照負載均衡和超圖劃分把實體集的倒排列表分布到相應 的索引節點中; 水平劃分:基于查詢日志的訪問模式信息與超圖理論,把實體劃分到不同的索引節點 中,使得各個索引節點負載保持均衡W及索引節點內部任意兩個實體的相似性較高,同時 最小化索引節點與索引服務器的通信開銷; 步驟一 Ξ、獲得二維劃分索引框架: 使二維索引分布在不同索引節點中,使每個索引節點中索引花費對存儲空間顯著降 低,二維索引邏輯上可W看成一個NXM的集群, 數據空間索引在行維度上是一個基于負載均衡與超圖劃分的水平劃分索引,按照實體 級劃分; 數據空間索引在列維度上是一個基于負載均衡與超圖劃分的垂直劃分索引,按照聚合 tokens詞劃分; 每個索引節點對應tokens詞壓縮后的倒排索引; 在第i行和第j列中的索引節點15^中,包含tokens詞{a,b,. . .,f}和實體{〇3〇, . . .0日〇}, 其對應的倒排索引格式如虛線箭頭指向的倒排索引;在索引節點ISu中,其索引詞匯為原始 詞匯的一個子集{a,b, ... ,f},運些詞匯在垂直劃分后形成Ξ個聚合tokens詞,聚合tokens 詞對應實體集都同屬于一個水平劃分. 步驟二、擴展二維劃分索引框架(2D-IL)為Ξ維索引框架(MIL): 通過為二維索引中每個索引節點ISij復制D份,構成Ξ維立方體的多維索引,在索引節 點ISu的每個副本之間保證通信,防止該索引節點ISu失敗時導致沒有可用的查詢結果的 情況; 步驟Ξ、利用Ξ維索引框架(MIL)實現數據空間多維索引: 所述立維索引邏輯上可W看成一個NXMXD的3D立方體,其中D是復制的份數; 在索引號(Ni,Mj,Dk)對應的單元格中,黑色點表示索引節點ISi化設及索引token詞{a, b,. . .,f}、實體{〇3〇,. . .050}并且是第k個備份; 當一個查詢Q = tiAt2A...Atn被提交時,其處理流程為:(1)找出設及token詞{ti, t2, . . .,tn}的列集合{Mj ; (2)對于運些列集合{Mj,選擇出相似性分數大于某個闊值的行 集合{Nj}; (3)在(Nj,Mj)對應的備份中,隨機選擇一個立方體;(4)在確定所有的小立方體 后,即(Ni,Mj,Dk)對應的立方體,把相應的子查詢并發地發送到對應的索引節點ISij沖,進 行并發查詢;如果當前索引節點ISuk失敗,利用通信機制把子查詢發送隨機發送到其它副 本的索引節點中ISui; (5)最后把所有并發查詢結果進行綜合并返回給用戶。3.根據權利要求1所述的一種基于負載均衡和查詢日志的數據空間多維索引方法,其 特征在于:步驟一一中,基于負載均衡與超圖劃分的垂直劃分過程中, 聚合tokens詞的選取具體為: 利用TokensSelect ion算法選取聚合tokens詞: TokensSelection(TDB,C,T) 輸入:TDB是一個事務數據庫,其中每個事務為一個實體或者查詢日志中一個查詢,事 務對應的項集為實體包含的tokens詞集合或者查詢包含的tokens詞集合,ξ是最小支持度; 輸出:Τ為tokens詞的劃分,初始為空; 首先掃描事務數據庫TDB,尋找非頻繁1-項集NF和頻繁1-項集F,并對F按照支持度降序 進行排序; NF中每個token詞單獨作為一個垂直劃分列表加入到集合T中;接下來,對于F來說,再 一次掃描TDB,構建FP樹,并對F中每個tokenk詞分別調用FP-growth(FP樹,tokenk)算法,從 而產生所有的頻繁項集,記為打eq_set; 為保證頻繁項集互不相交,按照頻繁項集對頻繁項數量和支持度順序對freq_set進行 降序排序;最后進行不斷迭代,直至freq_set為空,在每次迭代中,先取出第一個頻繁項集 top,并把top作為一個垂直劃分加入到集合T中,同時從打eq_set中移除top,然后從freq_ set中移除與top相交不為空對所有頻繁項集; 給出垂直索引分布方式,具體為: 給定一個查詢集合Q= {qi,q2, . . .,q|Q|}、詞匯表Τ= {ti,t2, . . .,t|T|}、索引節點集合IS = {ISi,IS2,...,ISm 巧 P 壓縮后的倒排索弓 |/ = {('4,4i),托:,4:),...,相,4,1)),其中 是聚合 tokens并且和訪問頻率打eqi關聯,以是*1對應的倒排列表,每個A £ ?' ;聚合包括 一個或多個ti,不同的交集為空且全體心并集為T; 定義超圖:一個超圖H=(V,E)是由頂點集合V和超邊集合E組成,其中每條超邊ejGE與V 中頂點子集相連,每個頂點Vi e V具有一個權重wi; 每個頂點表示聚合tokens詞,其權重為訪問該聚合tokens詞對應倒排列表的開銷,每 條超邊表示查詢中tokens詞在哪些聚合tokens詞在中出現,即一個查詢與相應的每一個?。. 進行連接; 11 = {¥1,¥2,...,¥。}是一個111路的超圖劃分當且僅當每個部分¥1^聲(1)、¥1<1¥1=(1)且 W*:=:n 超圖劃分Π 是λ-平衡當且僅當對每一個部分Vke Π ,Wk《(l+λ)Wavg,其中權重Wavg是所有Wk的平均權重; 對于超圖來說,如果超邊ejGE與部分Vk中一(多)個頂點相連,則稱超邊ejGE與部分Vk 的相連,其連通度iKej,Vk) = l; 超邊e^eE與劃分Π 的連接g'即與超邊相連接的部分數;m路 超圖劃分問題可W定義為尋找一個λ-平衡的超圖劃分,使捐最小; 垂直索引劃分的目標是:利用查找日志和實體的偏斜信息,生成一組互不相交的聚合 tokens詞,然后利用用戶查詢日志中訪問倒排列表信息均衡地把聚合tokens詞對應的倒排 列表分布到不同索引節點中,并使得通信開銷最小;利用查詢與聚合tokens詞的交互信息, 按照處理聚合token詞的計算負載情況,把所有聚合tokens詞均衡地劃分到不同對索引節 點中,并使得查詢設及的索引節點數量最小; 把聚合tokens詞看作超圖中頂點,單個索引節點ISk中包含的所有聚合token詞看作超 圖中頂點集的一個部分Vk聲Φ,查詢日志中一個查詢weQ看作一條超邊e^eE,查詢日志中 所有查詢訪問索引節點IS沖倒排列表的開銷看作超圖劃分Π 中部分Vk的總權重Wk,所有查 詢設及的所有分布式節點數量看作超圖劃分Π 的總通信開銷Γ ( Π ); 垂直索引分布問題歸約為λ-平衡的超圖劃分問題,即Π 中每個部分Vk對應分配給索引 節點ISk的聚合tokens集合Tk,每個Wk對應ISk的所有計算負載,Γ (Π )對應查詢Q設及的總 通信開銷。4.根據權利要求3所述的一種基于負載均衡和查詢日志的數據空間多維索引方法,其 特征在于:步驟一二中,確定基于負載均衡與超圖劃分的水平劃分索引的過程中, 水平劃分的過程為: 給定一個查詢集合Q= {qi,q2, . . .,q|Q|}、實體集合0= {〇1,〇2, . . .,〇|〇|}、實體間的相似 性矩陣A={sim(〇i,〇j) |0|}和索引節點集合IS={ISi,IS2,. . .,ISn},其中Sim (〇i,〇j)表示兩個實體的相似性,每個查詢f/, £7' ; 定義(λ, η)-平衡且相似的超圖劃分,超圖劃分Π 是(λ, η)-平衡且相似,當且僅當, (1) 對每一個部分VkeΠ ,Wk《(l+λ)Wavg,其中權重rWavg是所有Wk的平均權 重; (2) 對每一個部分VkG Π ,任意兩個頂點vi,VjeVk,sim(Vi,Vj)>rl,其中sim(Vi,Vj)表示 兩個頂點的相似性; 對于超圖來說,如果超邊ejGE與部分Vk中一(多)個頂點相連,則稱超邊ejGE與部分Vk 的相連,其連通度iKej,Vk) = l;超邊e^eE與劃分Π 的連接運印與 超邊相連接的部分數;m路超圖劃分問題也可W定義為尋找出一個(λ, η)-平衡且相似的超 圖劃分,使得最小; 水平索引劃分的目標是:基于查詢日志的訪問模式信息與超圖理論,把實體劃分到不 同的索引節點中,使得各個索引節點負載保持均衡W及索引節點內部任意兩個實體的相似 性較高,同時最小化索引節點與索引服務器的通信開銷; 把每個實體〇1詞看作超圖中頂點viev,其權重為處理該實體〇1的計算負載wi,單個索引 節點1?中包含的所有實體Ok看作超圖中頂點集的一個部分Vk聲Φ,并且1?中實體共享相 似的屬性,查詢日志中一個查詢qj e Q看作一條超邊ej e E,查詢日志中所有查詢訪問索引節 點ISk中倒排列表的開銷看作超圖劃分Π 中部分Vk的總權重Wk,所有查詢設及的所有分布式 節點數量看作超圖劃分Π 的總通信開銷Γ ( Π ); 水平索引分布問題可W歸約為(λ, η)-平衡的超圖劃分問題,即Π 中每個子頂點集Vk對 應分配給索引節點I Sk的實體集合Ok,每個Wk對應I Sk的所有計算負載,每對頂點的相似性對 應每對實體間的相似性,Γ ( Π )對應查詢Q設及的總通信開銷;具體來說,使用超圖H= (V, E)表示用戶查詢集與水平劃分中實體集之間的交互;在超圖Η中,每個實體〇1代表一個頂點 Vi e V,每個查詢qj e Q代表一條超邊ej e Ε,每個頂點Vi的權重wi代表處理該實體oi的計算負 載,每個頂點記錄一組它所包含tokens詞的訪問頻率; 假定f (ti)為token詞ti的訪問頻率,即查詢日志中token詞ti的頻率,在查詢處理中,頂 點Vi的權重Wi采用下式進行度量:其中|?|表示每個實體0的平均tokens詞個數。
【文檔編號】G06F17/30GK106095951SQ201610422994
【公開日】2016年11月9日
【申請日】2016年6月13日 公開號201610422994.5, CN 106095951 A, CN 106095951A, CN 201610422994, CN-A-106095951, CN106095951 A, CN106095951A, CN201610422994, CN201610422994.5
【發明人】王紅濱, 王念濱, 周連科, 祝官文, 王瑛琦, 何鳴, 宋奎勇
【申請人】哈爾濱工程大學