并行資料庫
并行資料庫
并行資料庫技術起源於20世紀70年代的資料庫機(Database Machine)研究,研究的內容主要集中在關係代數操作的并行化和實現關係操作的專用硬體設計上,希望通過硬體實現關係資料庫操作的某些功能,該研究以失敗而告終。
80年代後期,并行資料庫技術的研究方向逐步轉到了通用并行機方面,研究的重點是并行資料庫的物理組織、操作演演算法、優化和調度策略。從90年代至今,隨著處理器、存儲、網路等相關基礎技術的發展,并行資料庫技術的研究上升到一個新的水平,研究的重點也轉移到數據操作的時間并行性和空間并行性上。
并行資料庫系統的目標是高性能(High Performance)和高可用性(High Availability),通過多個處理節點并行執行資料庫任務,提高整個資料庫系統的性能和可用性。
性能指標關注的是并行資料庫系統的處理能力,具體的表現可以統一總結為資料庫系統處理事務的響應時間。并行資料庫系統的高性能可以從兩個方面理解,一個是速度提升(SpeedUp),一個是範圍提升(ScaleUp)。速度提升是指,通過并行處理,可以使用更少的時間完成兩樣多的資料庫事務。範圍提升是指,通過并行處理,在相同的處理時間內,可以完成更多的資料庫事務。并行資料庫系統基於多處理節點的物理結構,將資料庫管理技術與并行處理技術有機結合,來實現系統的高性能。
可用性指標關注的是并行資料庫系統的健壯性,也就是當并行處理節點中的一個節點或多個節點部分失效或完全失效時,整個系統對外持續響應的能力。高可用性可以同時在硬體和軟體兩個方面提供保障。在硬體方面,通過冗餘的處理節點、存儲設備、網路鏈路等硬體措施,可以保證當系統中某節點部分或完全失效時,其它的硬體設備可以接手其處理,對外提供持續服務。在軟體方面,通過狀態監控與跟蹤、互相備份、日誌等技術手段,可以保證當前系統中某節點部分或完全失效時,由它所進行的處理或由它所掌控的資源可以無損失或基本無損失地轉移到其它節點,並由其它節點繼續對外提供服務。
為了實現和保證高性能和高可用性,可擴充性也成為并行資料庫系統的一個重要指標。可擴充性是指,并行資料庫系統通過增加處理節點或者硬體資源(處理器、內存等),使其可以平滑地或線性地擴展其整體處理能力的特性。
隨著對并行計算技術研究的深入和SMP、MPP等處理機技術的發展,并行資料庫的研究也進入了一個新的領域,集群已經成為了并行資料庫系統中最受關注的熱點。目前,并行資料庫領域主要還有下列問題需要進一步地研究和解決。
(1)并行體系結構及其應用,這是并行資料庫系統的基礎問題。為了達到并行處理的目的,參與并行處理的各個處理節點之間是否要共享資源、共享哪些資源、需要多大程度的共享,這些就需要研究并行處理的體系結構及有關實現技術。
(2)并行資料庫的物理設計,主要是在并行處理的環境下,數據分佈的演演算法的研究、資料庫設計工具與管理工具的研究。
(3)處理節點間通訊機制的研究。為了實現并行資料庫的高性能,并行處理節點要最大程度地協同處理資料庫事務,因此,節點間必不可少地存在通訊問題,如何支持大量節點之間消息和數據的高效通訊,也成為了并行資料庫系統中一個重要的研究課題。
(4)并行操作演演算法,為提高并行處理的效率,需要在數據分佈演演算法研究的基礎上,深入研究聯接、聚集、統計、排序等具體的數據操作在多節點上的并行操作演演算法。
(5)并行操作的優化和同步,為獲得高性能,如何將一個資料庫處理事務合理地分解成相對獨立的并行操作步驟、如何將這些步驟以最優的方式在多個處理節點間進行分配、如何在多個處理節點的同一個步驟和不同步驟之間進行消息和數據的同步,這些問題都值得深入研究。
(6)并行資料庫中數據的載入和再組織技術,為了保證高性能和高可用性,并行資料庫系統中的處理節點可能需要進行擴充(或者調整),這就需要考慮如何對原有數據進行卸載、載入,以及如何合理地在各個節點是重新組織數據。