《Scaling Queries over Big RDF Graphs with Semantic Hash Partitioning》——筆記

ABSTRACT

首先,我們提出的語義哈希分割方法通過基於方向的三元組和基於方向的triple replications來擴展簡單的哈希分區方法。後者通過數據訪問位置的智能利用通過受控數據複製來增強前者,使得可以以零或非常少量的機器間通信成本處理對大RDF圖的查詢。
第二,通過有效地最小化查詢處理的機器間通信成本,我們生成比流行的多節點RDF數據管理系統更有效的本地優化的查詢執行計劃。
第三,我們提供一套局部感知優化技術,以進一步減少分區大小,並降低分佈式查詢處理期間的機器間通信成本。

1. INTRODUCTION

RDF data is escalating because of semantic web community and Linked Open Data initiatives.
一方面,爲大數據和語義Web計劃的創新打開門檻。
另一方面,使服務器的內存和計算資源捉襟見肘,RDF存儲庫遇到瓶頸。不能實時的回答查詢。
現分佈式RDF系統採用Hadoop MapReduce作爲其查詢執行層進行協調查詢,但研究表明,服務器節點需要少量協調和不需要之間查詢性能差異明顯。中間結果較大時,服務器節點間的通信成本非常高。因此,可擴展的RDF數據分區方法應該能夠將大型RDF數據分解成性能優化的分區,也就是使擊中分區邊界的查詢數量最小化,並消除或顯著的減少在服務器節點集羣間傳送多輪數據的成本。

本文提出一種語義哈希分區方法,它將局部性優化的RDF圖劃分與成本感知查詢分區相結合。在數據分區階段,我們開發了一種語義哈希分割方法,利用訪問局部性通過最大化分區內處理能力和最小化分區間通信成本來跨越多個計算節點對大RDF圖分區。
1、Our semantic hash partitioning approach introduces direction-based triple groups and direction-based triple replications to enhance the baseline hash partitioning algorithm by controlled data replication through intelligent utilization of data access locality.
2、We also provide a suite of semantic optimization techniques to further reduce the partition size and increase the opportunities for intra-partition processing.
3、At the cost-aware query partitioning phase, we generate locality-optimized query execution plans that can effectively minimize the inter-partition communication cost for distributed query processing and are more efficient than those produced by popular multi-node RDF data management systems.
爲驗證提出的語義哈希分區結構,開發了Shape。另外雖然着重於RDF數據和SPARQL查詢,但應該對一般的查詢和子圖匹配都應該適用。

2. PRELIMINARY

2.1 RDF and SPARQL

這裏寫圖片描述
RDF——三元組。
SPARQL——W3C推薦適用的類似於SQL的用於RDF的查詢語言。有星型查詢,鏈式查詢和複雜查詢。

數據分區是許多領域應用的重要問題,哈希分區是主要方法之一。
根據RDF數據集的分區方式和如何存儲和訪問分區,將現有的分佈式RDF系統分爲兩類。
1、使用水平(隨機)分區劃分RDF數據集,使用分佈式文件系統存儲分區,使用分佈式編程模型,並行訪問服務器集羣來處理查詢。舉例SHARD。該類方法問題在於處理查詢的節點間通信成本過高。
2、通過對subject,object,predicate或者他們的組合進行哈希分區。但是分區被存儲在本地的數據庫中,通過本地查詢接口訪問。與第一種相比,只適用於諸如Hadoop,MapReduce之類的分佈式計算框架,以執行分佈式查詢所需的跨服務器協調和數據傳輸。(沒有人關注這點,導致長的查詢延遲。)Concretely, Virtuoso Cluster , YARS2 , Clustered TDB and CumulusRDF are distributed RDF systems which use simple hashing as their triple partitioning strategy, but differ from one another in terms of their index structures.

圖劃分已得到廣泛的研究,典型的圖形分割將圖形劃分爲較小的分區,他們之間具有最小的連接。爲了各個分區的服務器平衡,很多人努力將圖形分割成大小類似的分區。實驗表明,min-cut based graph partitioners outperforms the simple hash partitioning approach。目前的圖形分割器問題在加載RDF數據的高開銷以及對大型數據集的可擴展性差。所以一些以頂點爲中心的編程模型被提出,用於在商品服務器集羣上進行高效圖形處理,或者最大限度地減少內存中圖形計算所需要的磁盤IO。

3. OVERVIEW

系統架構圖

數據分區

語義哈希分割器位於主服務器執行三個主要任務:
1、預分區優化器準備用於哈希分區的輸入RDF數據集,旨在增加下一步中生成的每個基準分區的訪問位置
2、基準散列分區生成器使用簡單的哈希分割器創建一組基線散列分區。在第一個原型實現中,我們將分區數設置爲可用的從屬服務器的數量。
3、語義哈希分區生成器利用triple replication策略來確定如何擴展每個基準分區以生成具有高訪問局部性的語義哈希分區。
在從屬服務器上,可以安裝RDF特定的存儲系統或關係DBMS來存儲數據分區算法生成的分區。

分佈式查詢處理

主服務器作爲SPARQL查詢的接口。

分區內處理

意味着可以在每個服務器上通過本地搜索與Q的三重模式匹配的子圖來完全執行查詢Q。處理Q的服務器間的通信只是主服務器想從屬服務器發送Q和接受部分結果。

分區間處理

整個查詢Q不在任何分區服務器上執行,並且需要將其分解爲一組子查詢,以便可以通過分區內處理來評估每個子查詢。分區間處理的通信成本可能非常高。

4. SEMANTIC HASH PARTITIONING

語義哈希分割算法在三個主要步驟中執行數據分區:
(i) Building a set of triple groups which are baseline building blocks for semantic hash partitioning. 構建一組三元組
(ii) Grouping the baseline building blocks to generate baseline hash partitions. 分組基準構建模塊以生成基線散列分區。
(iii) Generating k-hop semantic hash partitions, which expands each baseline hash partition via controlled triple replication. 生成k-hop語義哈希分區,它通過受控triple replication 來擴展每個基線哈希分區。

4.1 Buiding Triple Groups

直觀的劃分方法是將有同樣subject或object的三元組分到一起形成triple group。triple group作爲基準構建塊。這樣在每個服務器上可以並行高校地處理星型查詢。

DEFINITION 1. (RDF Graph) An RDF graph is a directed, labeled multigraph, denoted as G=(V,E,ΣE,lE) where V is a set of vertices and E is a multiset of directed edges (i.e., ordered pairs of vertices). (u,v)E denotes a directed edge from u to v. ΣE is a set of available labels (i.e., predicates) for edges and lE is a map from an edge to its label (EΣE)

在RDF數據集中,兩個點之間可能有多個邊。對於RDF圖中的每個點v,我們基於v在triple groups中的角色,定義三種triple group。(i) subject-based triple group (s-TG) of v. (ii) object-based triple group (o-TG) of v (iii) subject-object-based triples in which their subject or object is v.

DEFINITION 2. (Triple Group) Given an RDF graph G=(V,E,ΣE,lE) , s-TG of vertex vV is a set of triples in which their subject is v, denoted by sTG(v)={(u,w)|(u,w)E,u=v}. We call v the anchor vertex of s-TG(v). Similarly, o-TG and so-TG of v are defined as oTG(v)={(u,w)|(u,w)E,w=v} and soTG(v)={(u,w)|(u,w)E,v{u,w}} respectively.

我們爲RDF圖中的每個定點生成一個triple group,並使用一組triple group作爲基準構建塊來生成k-hop語義散列分區。

4.2 Constructing Baseline Hash Partitions

採用第一步生成的triple groups, 並在每個triple group的錨點定點應用散列函數,並將具有相同散列值的triple group放在同一個分區中。三種類型的triple group也有三種類型的分區。

DEFINITION 3. (Baseline hash partitions) Let G=(V,E,ΣE,lE) denote an RDF graph and TG(v) denote the triple group anchored at vertex vV . The baseline hash partition P of graph G results in a set of n partitions, denoted by {P1,P2,...,Pn} such that Pi=(Vi,Ei,ΣEi,lEi) , iVi=V,iEi=E . If Vi={v|hash(v)=i,vV}{w|(v,w)TG(v),hash(v)=i,vV} and Ei={(v,w)|v,wVi,(v,w)E} , we call the baseline partitioning P the s-TG hash partitioning. If Vi={v|hash(v)=i,vV}{u|(u,v)TG(v),hash(v)=i,vV} and Ei={(u,v)|u,vVi,(u,v)E} , we call the baseline partitioning P the o-TG hash partitioning. In the above two cases, EiEj= for 1i,jn,ij . If Vi={v|hash(v)=i,vV}{w|(v,w)TG(v)(w,v)TG(v),hash(v)=i,vV} and Ei={(v,w)|v,wVi,(v,w)E} , we call the baseline partitioning P the so-TG hash partitioning

可以通過檢查基準分區的完全覆蓋以及subject-based和object-based的基準分區的不相交屬性來判斷基準分區的正確性。另外,通過對度較高的錨點定點進行微調可以進一步提高服務器集羣的分區平衡。

4.3 Generating Semantic Hash Partition

前兩步使用散列函數得到基線分區有兩個優點:(i)簡單(ii)生成平衡良好的分區。但缺點在於複雜的非星型查詢的性能不佳。
我們通過基於跳躍的受控triple replication 來開發局部感知語義哈希分區算法。

4.3.1 Hop-based Triple Replication

目標是創建一組語義哈希分區,使得可以通過分區內處理來評估的查詢數量增加並最大化。下圖說明語義哈希分區的概念和優點。
這裏寫圖片描述

DEFINITION 4. (Path) Given an RDF graph G=(V,E,ΣE,lE) , a path from vertex uV to another vertex wV is a sequence of vertives, denoted by v0,v1,...,vk , such that v0=u,vk=w,m[0,k1]:(vm+1,vm)E . A bidirection path from vertex u to vertex w is a sequence of vertices, denoted by v0,v1,...,vk , such that v0=u,vk=w,m[0,k1]:(vm+1,vm)E . The length of the apth v0,v1,...,vk is k.
DEFINITION 5. (Hop count) Given an RDF graph G=(V,E,ΣE,lE) , we define the hop count from vertex uV to vertex vV , denoted by hop(u,v), as the minimum length of all possible forward direction paths from u to v. We also define the hop count from vertex u to edge (v,w)E , denoted by hop(u,vw), as “1+hop(u,v)”. The reverse hop count from vertex u to vertex v, reverse_hop(u,v), is the minimum length of all possible reverse direction paths from u to v. The bidirection hop count from vertex u to vertex v, bidirection_hop(u,v), is the minimum length of all possible bidirection paths between u to v. The hop count hop(u,v) is zero if u=v and if there is no forward direction path from u to v. Similar exceptions exist for reverse_hop(u,v) and bidirection_hop(u,v).

使用k-hop擴展來控制triple replication的級別,以及查詢性能和存儲成本之間的平衡。優化k值的方法:利用有代表性的歷史查詢。生成k跳語義哈希分區的三種方法:前向,反向,雙向。

4.3.3 Selective k-hop Expansion

通過使用一些上下文感知過濾器來促進進一步控制k-hop擴展,而不是通過擴展k跳來複制三元組。舉例rdf:type關係。

4.3.4 URI Hierarchy-based Optimization

We conjecture that if such URI references (vertices) are placed in the same partition, we may reduce the number of replicated triples.
We measure the percentage of RDF triples whose subject vertex and object vertex share the same ancestor for different levels of the hierarchy. If, at any level of the hierarchy, the percentage of such triples is larger than a system-supplied threshold (empirically defined) and the number of distinct URLs sharing this common hierarchical structure is greater than or equal to the number of partition servers, we can use the selected portion of the hierarchy from the top to the chosen level, instead of full URI references, to participate in the baseline hash partitioning process.

4.3.5 Algorithm and Implementation

這裏寫圖片描述

5 DISTRIBUTED QUERY PROCESSING

5.1 Query Analysis

這裏寫圖片描述
利用Theorem 1,找查詢的半徑和語義哈希分區的k作對比。

5.2 Query Decomposition

儘量少的分解子查詢。
具體的說,通過將Q的查詢圖中的所有頂點放入待檢查的候選頂點集合中來開始查詢分解。如果數量最少的有多個,找數量標準偏差最小的。

5.3 Distributed Query Execution

Intra-partition processing steps: 把查詢發送到各個從屬服務器進行處理。
Inter-partition processing steps: 把所有子查詢的中間結果加載到HDFS中並使用hadoop MapReduce進行連接。

6 EXPERIMENTAL EVALUATION

6.1 Experimental Setup and Datasets

這裏寫圖片描述

6.2 Data Loading Time

The random partitioning (rand) and the simple hash partitioning on subjects (hash-s) have the fastest loading time because they just need to read each triple and assign the triple to a partition randomly (rand) or based on the hash value of the triple’s subject (hash-s). Our forward direction-based approaches have fast loading time.
這裏寫圖片描述

6.3 Redundancy and Triple Distribution

這裏寫圖片描述
隨機分區rand和對於subject的簡單哈希分區的比例爲1。前向方法可以在保持跳數的同時減少複製的三元組的數量。但是使用雙向去擴展基線分區時輔助的開銷很大。
這裏寫圖片描述
語義哈希分區方法具有幾乎完美的均勻分佈。

6.4 Query Processing

這裏寫圖片描述
用於查詢評價的查詢。 The forward radii of SP2B Complex1 and Complex2 are ∞ and 2 respectively. The bidirection radii of SP2B Complex1 and Complex2 are 3 and 2 respectively.
這裏寫圖片描述
除了需要進行區間處理的Q7之外,前向分區方法(2f,3f和4f)的查詢處理時間比其他所有的分析技術又快。雙跳雙向方法(2b)也具有良好的性能。
對於Q7,基於方向的分區方法中間結果較大所以慢,但是和簡單的哈希分區方法相比要快。
這裏寫圖片描述
表六顯示在其他數據集上的查詢處理時間。

6.5 Scalability

這裏寫圖片描述
我們通過改變數據集大小和集羣大小來評估分區方法的可擴展性。圖8示出了星型查詢Q6,Q13和Q14的查詢處理時間的增加幾乎與數據集大小成比例。對於Q7,在2跳雙向(2b)擴展下,查詢處理時間只會稍微增加,因爲其結果不會隨數據集大小而變化。另一方面,在2跳(2f)擴展中,查詢處理時間大大增加,因爲中間結果根據數據集大小增加,即使最終結果是相同的,無論數據集大小如何。
圖9顯示了在LUBM267M數據集上從5到20個不同數量的從服務器的可擴展性實驗的結果。對於選擇性高(Q1,Q3,Q4,Q5和Q10)的星形查詢,由於分區大小減少,處理時間隨着服務器數量的增加而略有下降。對於低選擇性的星形查詢(Q6,Q13和Q14),查詢處理時間的減少幾乎與從屬服務器的數量成正比。

6.6 Effects of optimizations

這裏寫圖片描述
使用rdf:type-like 三元組優化,和URI層次結構優化大大減少了分區大小。

7 CONCLUSION

在本文中,我們已經表明,當數據需要跨多個服務器節點進行分區時,數據分區算法的選擇可以在服務器網絡上的數據傳輸成本方面產生很大的不同。我們提出了一種新穎的語義散列分區方法,從簡單的哈希分區開始,通過僅複製必需的三元組來擴展每個分區,以增加訪問局部性並促進SPARQL查詢的分區內處理。我們還開發了一個分區感知分佈式查詢處理工具來生成位置優化查詢執行計劃。此外,我們提供一套局部感知優化技術,以進一步降低分區大小,並降低分佈式查詢處理期間的分區間通信成本。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章