introduction-国立中山大学资讯工程学系平行处理室.docVIP

  • 2
  • 0
  • 约1.38万字
  • 约 19页
  • 2018-04-16 发布于天津
  • 举报

introduction-国立中山大学资讯工程学系平行处理室.doc

introduction-国立中山大学资讯工程学系平行处理室

平行資料庫中動態負載平衡於排序運算之研究 Dynamic Load Balancing for Sorting Operation in Parallel Databases 羅有隆 陳秀娟 黃渝臻 Yu-lung Lo Shiou-jiuan Chen Yu-chen Huang 朝陽科技大學 資訊管理系 台中縣霧峰鄉吉峰東路168號 yllo@cyut.edu.tw 摘要 排序是常被運用在資料庫處理中的運算,例如在結講查詢化語言中之「依關鍵字將資料由小(大)到大(小)排列」與「去除重覆性的資料」的查詢語法上,都是需要藉助排序的處理。完全不共享多處理器系統架構是被公認為最具擴充性,且符合超大型資料庫的高產能需求,而查詢之資料排序是影響多處理器系統效能的重要因素之一。 目前所被提出的平行資料排序演算法,皆假設所要排序的資料在所有處理器中的分配是均勻的,亦即每個處理器的負載是差不多,如此排序所需的執行時間是趨於理想化的。然而在實際的運用上,資料歪斜是常可能發生的,也就是每個處理器所分配到的資料並不均勻,如此擁有最大資料負擔的處理器,將是排序處理速度的瓶頸,整個系統效能亦可能隨之受到影響。 此研究報告即在提出於多處理器資料庫中,利用動態負載平衡的方法,來分配資料做排序的運算,以降低因資料歪斜對系統效能所產生之負面影響。 且經由實驗模擬的結果,我們發現,所提出的排序演算法有著令人振奮的效能改進。 關鍵字:排序、多處理器系統、平行資料庫、平行處理、平衡負載 一、簡介 隨著資料庫系統大小不斷地擴大,使得資料查詢變得更為複雜。特別是在一些超大型資料庫(Very Large DataBases, VLDB)應用系統中(如全國戶政系統、地理資訊系統、決策資訊系統等等)的查詢,經常是相當耗時的。因此,如何加速資料庫查詢的處理速度,是一重要且急需解決的問題。平行處理是可用來加速查詢處理的重要方法之一,由於微處理機的技術成熟且價格越來越便宜,使用多個處理器於資料庫系統中變得更加經濟可行[1]。許多利用平行處理原理的多處理器資料庫系統原型早已被發展出來,典型的例子包括了東京大學的Grace Machine[13]、Teradata的 DBC/1012資料庫電腦[19]、MCC的Bubba系統[4]、以及威斯康辛大學的GAMMA資料庫系統[5]等。而商業化系統亦已不再少見。 而多處理器系統中,完全不共享(Shared-nothing)多處理器系統架構[16][17]被公認為最具擴充性,且符合超大型資料庫的高產能需求[5][6][13][19]。在此架構中,每個處理節點(Processing Node, PN)包含有一或數個處理器,以及擁有專屬的記憶體與硬碟,而這些處理節點靠著系統內高頻寬的網路連結。資料的運算,將在其所屬之處理節點中完成,而系統效能在此多處理器架構中,將取決於有效資源的利用與每一處理節點之查詢資料負載的平衡。 所謂排序,乃是指將一組資料依據特性或是依據使用者的需求,將資料呈現規則性的[7],例如在結講查詢化語言(Structure Query Language, SQL)中之ORDER BY(依關鍵字將資料由小/大到大/小排列)與DISTINCT (先將資料排序後,再去除重覆性的資料)的查詢語法上都是需要藉助排序的處理。基本上排序可以分為[18]。 內部排序,乃是指針對記憶體中的資料按某種順序進行編排把資料完全放在主記憶體內進行排序的式此種排序方法對於少量資料特別有效外部排序,當資料量多無法一次全部入主記憶體內進行排序,而必須借用外部的儲存裝置。[18],然而在多處理器環境下的執行,則過於理想化。 雖然其運用平行處理的觀念及技術來執行,但卻也都假設了每個處理節點有著相同量的資料負擔[3][18][20],而忽略了可能發生的資料歪斜(data skew)[21]情形。 當每個處理節點所要執行排序的資料量不一致時,整個查詢所需的回應時間,將被擁有最大量資料要排序的處理節點所延遲。 對於平行資料庫的操作過程中可能產生的資料歪斜,連結(join)運算是最被廣泛討論的,也提出了很多的解決方案。 當連結運算傾向於利用雜湊(hashing)與動態負載平衡(dynamic load balancing)來處理資料歪斜的問題時[8][9][10][11] [12],其解決辦法並無法完全套用於排序上,因連結的結果並不要求資料的順序性。至今解決平行排序運算時資料歪斜的情況發生,則尚未受到注目。 因此在一個理想的外部排序的多處理器系統中,我們不僅希望能達到最大的平行度(maximum degree of parallelism),以使用最多的處理節點來幫助加速。 而且每個處理節點的工作負擔,在所要處理的資料分配上皆能達到所謂的

文档评论(0)

1亿VIP精品文档

相关文档