• 沒有找到結果。

先介紹一些為了使 Skyline 查詢在 MapReduce 框架實質的帄行處理,這個小節會介紹 一項新穎的演算法。這個演算法會將單一 Reducer 運算工作分擔給多運算單元進行,

Undominated Set。

圖 6 集合間的支配關係

‧ 國

立 政 治 大 學

Na tiona

l Ch engchi University

14

圖 7 Dominate 名詞解釋

DST (T)表示 T 在資料空間中會被支配的資料點所成的集合,同時也是在 T 中不是 Skyline 的資料點所成的集合。換句話說,資料空間中所有資料點 T 與被 T 支配的資 料點所成的集合的差集,便成為 T 中不被任何資料點支配的集合,同時也就是其 Skyline,表示為T − DST (T) = SKY(T)

假設一個巨量資料集合為了帄行的運算效率將原始資料 T 分割成 p 個片段,表示 為*P1, . . , Pp+,這裡提出一個引理:

Lemma 1 將資料 T 分割成 p 個片段,分別取其 Local Skyline 並聯集起來去支配資 料片段 Pi 會得到一個 Dominated Set,此 Dominated Set 會與以資料 T 去支配資料片段 Pi 的 Dominated Set 相等。也就是 DS Sky(P

j) p

j=1 (Pi) = DST (Pi)。

這樣我們可以設計直觀演算法,將一個 Mapper 的 Local Skyline 送去一個 Reducer 處理,而這個 Reducer 也收集來自其他 Mapper 的 Local Skyline,這樣就可以達到多 Reducer 帄行處理。因為一組本地端結果經過所有 Local Skyline 給檢查支配後,移除 被任一 Local Skyline 支配的資料點,剩下的 Local Skyline 就是 Global Skyline 其中一

‧ 國

立 政 治 大 學

Na tiona

l Ch engchi University

15

個片段。收集所有這樣的 Global Skyline 片段所成的集合便是所有全域 Skyline 的查詢 結果,不用再額外進行全域 Skyline 運算。

直觀演算法達到幾個好處:第一個好處就是在 Reducer 任務不再進行 Skyline 運算,

而只進行用所有 Local Skyline 查詢結果去檢查支配。因為檢查支配運算的時間複雜度 相較 Skyline 運算低很多,所以降低單一 Reducer 任務處理的時間。第二個好處為將一 個 Skyline 運算轉換成多個檢查支配運算,並將多個檢查支配運算分配給眾多 Reducer 任務去處理。因此達到多 Reducer 任務帄行處理,化解了在資料量龐大時單一 Reducer 任務處理的瓶頸。綜合以上兩個優點,可以有效的加速查詢處理的回應時間。

圖 8 直觀演算法框架

務的 Local Skyline 資料點數目,而且 Local Skyline 必頇一對多的傳遞複製給每個 Reducer 任務知道。額外的負擔約為:

(Mapper 任務總數)

× (Mapper 任務的 Local Skyline 資料點數目)

× (Reduce 任務總數)

Mapper 任務總數決定於資料分割的數量,Reducer 任務總數與 Mapper 任務數目 相等,因此 Mapper 任務總數及 Reducer 任務總數在演算法設計是無法控制及預期的。

因此只能從減少 Mapper 任務的 Local Skyline 資料點數目來嘗詴降低對網路的負擔。

在直觀演算法中以 Local Skyline 作為 Dominator Set 來傳送到每個 Reducer 收集。

在圖 9 中顯示為一 Reducer 收集的資料集合,黃色集合 Y 的資料點作為 Dominatee Set,

而其餘顏色(紅、綠、藍)的資料點為來自其他 Mapper 傳送來的 Local Skyline。我們從 圖中可以發現作為 Dominator Set 的資料點並非都對於支配 Dominatee Set 有貢獻,如 果可以事先將這些點在 Mapper 送出 Dominator Set 之前將他們從中移除掉,我們便可 以有效地降低對網路傳輸造成的負擔。在介紹找出沒貢獻點的方法之前先介紹一個定

相關文件