1. 程式人生 > >《Evaluating SPARQL Queries on Massive RDF Datasets》——筆記

《Evaluating SPARQL Queries on Massive RDF Datasets》——筆記

Abstract

現在的系統大部分生成靜態分割槽,對於一些不適合現有分割槽的查詢並不友好。本文提出AdHash。

  1. 初始時,採用雜湊分割槽。快捷且可並行。
  2. 監視資料訪問模式並通過逐步重新分發和複製經常訪問的資料來動態地適應查詢負載。

Introduction

RDF不需要預定義模式,可以方便的表示不同來源的資料,因此被社交網路,搜尋引擎等廣泛使用。傳統的集中式RDF系統,如:RDF-3X和TripleBit不能應對這過大的資料量。但是分散式系統在組合中間成果時,可能會產生較大成本。
分散式系統採取精準分割槽和複製部分三元組,來減少分割槽間查詢,但是問題仍然存在。
挑戰
現在的分散式系統有兩個問題,一,分割槽成本,如果啟發式簡單,則在查詢期間會有過多的通訊。複雜的啟發式可能會帶來巨大的預處理成本和複製率。但是經常訪問到的資料只佔總體的一小部分,應根據查詢來進行分割槽。二、適應性,靜態的分割槽並不能適應各種各樣的查詢。
本文提出了自適應雜湊的方法(AdHash):
**Lightweight Initial Partitioning: **hash triples’subjects. low cost & do not incur replication.
Hash-based Locality Awareness:

最大化可並行處理的join的數量。
Adapting by Incremental Redistribution: 對於頻繁查詢的資料進行重分配或者複製。

AdHash Architecture

這裡寫圖片描述

2.1 Master

首先劃分資料到每個worker上,並收集特徵。然後從使用者得到查詢請求,生成查詢計劃,收集查詢中間結果,輸出最終結果給使用者。
String Dictionary: 將RDF字串編碼成ID。
Data Partitioner: 對subject進行分割槽,因為連線subject的連結較多。
Statistics Manager: 維護關於圖的統計資訊,在全域性查詢計劃或對圖進行調整時使用。
Redistribution Controller:

以熱量圖的形式進行監測,對於一些熱點pattern採用自適應增量重分配過程。
Locality-Aware Query Planner: 利用統計資訊判斷是否查詢是否能在一個分割槽內執行。如果不能則找出溝通和連線最少的分解方式。
Failure Recovery: 儲存了字典,統計資訊,模式索引,可以用來故障恢復。

2.2 Worker

Storage Module: 首先對謂詞進行雜湊,簡歷謂詞索引,可直接對謂詞進行搜尋。然後對於每個謂詞的三元組堆分別對主語和賓語進行雜湊,可以支援利用s,p以及o,p的搜尋。
Replica Index: 用於儲存和索引複製資料作為自適應的結果,起初不包含資料,由增量重分佈(IPD)程序動態更新。
Query Processor:

兩種模式,需要通訊的分散式模型,無需通訊的並行模型。
Local Query Planner: 對於上一條的並行模型,需要本地生成查詢計劃。

2.3 System overview

在對資料進行編碼和分割槽後,每個worker裝載三元組並收集統計資訊,並彙集到主節點。Redistribution Controller利用全域性統計資訊將Q轉換成Q,如果Q出現在模式索引(PI)中或者是一個在subject上的星型查詢那麼可以並行查詢,否則分散式查詢。隨著查詢的不斷送入,Redistribution Controller不斷更新熱量圖,識別出熱點模式,觸發增量重分佈(IRD)過程,越來越多的查詢在並行查詢的模式下進行。

Demonstration Details