複製鏈接
請複製以下鏈接發送給好友

並行數據庫

鎖定
並行數據庫系統(Parallel Database System)是新一代高性能的數據庫系統,是在MPP和集羣並行計算環境的基礎上建立的數據庫系統。
中文名
並行數據庫
外文名
Parallel Database System
性    質
新一代高性能的數據庫系統
基    礎
MPP和集羣並行計算環境

並行數據庫基本信息

並行數據庫技術起源於20世紀70年代的數據庫機(Database Machine)研究,研究的內容主要集中在關係代數操作的並行化和實現關係操作的專用硬件設計上,希望通過硬件實現關係數據庫操作的某些功能,該研究以失敗而告終。80年代後期,並行數據庫技術的研究方向逐步轉到了通用並行機方面,研究的重點是並行數據庫的物理組織、操作算法、優化和調度策略。從90年代至今,隨着處理器、存儲、網絡等相關基礎技術的發展,並行數據庫技術的研究上升到一個新的水平,研究的重點也轉移到數據操作的時間並行性和空間並行性上。

並行數據庫PDB硬件結構

圖1 圖1
PDB的硬件結構一般分為三類:共享內存(Shared-Memory,簡稱SM)、共享磁盤(Shared-Disk,簡稱SD)、無共享(Shared-Nothing,簡稱SN),如圖1所示 [1] 
  • SM結構又可稱為完全共享型(Share-Eveyrtihng),所有處理機存取一公共全局內存和所有磁盤,如IBM/370、VAX是其代表。
  • SD結構中每個處理機有自己的私有內存,但能訪問所有磁盤,IBM的yS:plex和早期的VAx簇是其代表。
  • SN結構中所有磁盤和內存分散給各處理機,每個處理機只能直接訪問其私有內存和磁盤,各自都是一個獨立的整體,處理機間由一公共互連網絡連接,Teradata的DBC/1012、Tandem的Nonstop SQL是典型代表。
對這三種結構,長期以來人們爭論不休,直到近期才逐漸趨於一致,普遍認為PDB越來越趨向於Shared-Nothing的結構。這是因為在這樣的系統結構下,可望在複雜DB的查詢和聯機執程處理上達到線性加速比(Speedup)和伸縮比(Scaleup)。所謂加速比是指一定規模的任務在小規模系統和大規模系統上運行的時間之比,即:
加速比 = 小規模系統上運行時間
大規模系統上運行時間
如果系統規模擴大了N倍,例如結點數增加了N倍後,加速比等於N,則稱作線性加速比。伸縮比是任務在小規模系統上運行時間與擴大N倍的任務在擴大N倍的系統上運行時間之比,即:
伸縮比 = 小任務在小系統上運行時間
大任務在小系統上運行時間
如果伸縮比等於1,則稱作線性伸縮比。
實際上影響接近線性加速比和線性伸縮比的主要因素有三個:啓動時間(這是啓動所有結點進行並行操作所必需的時間)、衝突(當多個結點競爭資源時所必需的等待時間)、負載不均(由於一個任務分成多個子任務並行執行,任務的處理時間應該是最慢的那個子任務的處理時間)。對於啓動時間與負載不均是三種結構的PDB所共同面臨的,而對於衝突,因為SN結構的處理機間沒有共享資源,因此沒有衝突或衝突最小,系統規模的擴充與縮小隻涉及結點的人網與出網,可伸縮性較好,從而容易適應不同應用的需要,這就是為什麼今天較為成功的PDB都是SN結構的原因。
圖2 圖2
熟悉分佈式數據庫(DDB)的人們也許會覺得SN結構的PDB與DDB的硬件結構非常相似,因為DDB的硬件結構也是由網絡連接若干台計算機而組成(見圖2)。的確,物理上它們是十分相似的。但邏輯上PDB系統中的N個結點並不平等。其中只有一個結點與用户接口,接受用户請求.輸出處理結果,制定執行方案,而其餘結點只具有執行操作和彼此之間的通信能力,但不具備與用户的交互能力。換句話説,PDB在邏輯上往往是有一個前台處理機和多個後台處理機結點模型的系統(圖3)。我們把前台結點稱主結點,後台結點稱從結點,物理上主結點和從結點可以在一個物理結點上。而系統中的個結點從邏輯上講完全是平等的,他們沒有主次之分,即沒有控制整個系統的主機,也沒有受控於它機的從機。因此,主從控制計算機系統或分級控制計算機系統不是分佈式系統`月’。由此可見,基於SN結構的PDB與DDB在系統的邏輯結構上是完全不同的。
圖3 圖3

並行數據庫作用和目標

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