并行数据库 分布式数据库
既然決定以后會做與數據相關的研究,就先趁著暑假多了解一點知識!大三下學期剛剛學習了數據庫原理!趁熱打鐵!
目前對提高數據庫性能和可用性出現了并行數據庫和分布式數據庫~
?
并行數據庫(parallel database):
并行數據庫是新一代高性能數據庫系統,是在大規模并行處理計算機和集群并行計算環境的基礎上提出。
根據所在的計算機的處理器(Processor)、內存(Memory)及存儲設備(Storage)的相互關系,并行數據庫可以歸納為三種基本的體系結構:
共享內存(Shared-Memory,簡稱SM)
該結構由多個處理機,一個全局共享的主存儲器,多個磁盤存儲組成。各個處理器通過高速通訊網絡(Interconnection Network)與共享內存連接,并均可直接訪問系統中的一個、多個或全部的磁盤存儲,在系統中,所有的內存和磁盤存儲均由多個處理器共享。
提供數據庫服務的處理器通過全局共享內存交換消息和數據,通訊效率高,查詢內部和查詢間并行性實現不需要額外的開銷。
數據庫數據存儲在多個磁盤上,可被所有處理器訪問
此結構硬件成本高,由于多個處理器共享內存,處理器數量增加導致內存爭用,系統中處理器數量受到限制,可擴充性差。由于共享內存機制,內存錯誤直接影響系統。
共享磁盤(Shared-Disk,簡稱SD)
此結構由多個擁有獨立內存的處理器和多個磁盤組成,各個處理器之間沒有直接的信息和數據的交換,每個處理器都可以讀寫全部磁盤。處理器與磁盤由高速通信網絡連接。
優點:此結構經常用于實現數據庫集群,硬件成本低,可擴充性好,可用性強。
缺點:多個處理器共享磁盤存儲,當處理器增加可能導致磁盤爭用導致性能問題。每個處理器可訪問全部磁盤存儲。磁盤存儲中數據被復制到處理器高速緩沖區進行處理,會出現多個處理器同時對同一磁盤位置進行訪問和修改,最終導致數據的一致性無法保證。解決辦法是增加一個分布式緩存管理器對各個處理器的并發訪問進行全局控制與管理。不過這會帶來額外的通信開銷。
無資源共享(Shared-Nothing,簡稱SN)
這種結構由多個處理結點構成,每個處理結點有自己獨立的處理器,獨立的內存,獨立的磁盤。多個處理結點在處理器級上由高速通信網絡連接,系統中各個處理器用自己的內存處理數據。
這種結構,每個處理結點就是一個小型數據庫系統,多個結點一起構成分布式的并行數據庫系統。每個處理器使用自己的資源處理數據,不存在資源爭用,提高整體性能。
這種結構具有優良的可擴展性——只需增加額外的處理節點,就可以以接近線性的比例增加系統的處理能力。
并行數據庫的組織
主要涉及并行粒度和操作算法問題:
并行粒度:不同用戶事務間的并行,同一事務內不同查詢間的并行,同一查詢不同操作間的并行,同一操作內的并行性。
并行操作算法:并行連接算法,并行掃描算法,并行排序算法
?
?
?
分布式數據庫系統 (distributed database system)
定義:
分布式數據庫系統中,每個應用程序可以對數據進行透明操作,數據庫中的數據分別在不同的局部數據庫中存儲、由不同DBMS進行管理,在不同的機器上運行,由不同的操作系統支持,被不同通信網絡連接在一起。
分布式數據庫在邏輯上是個統一的整體,但物理上則分別存儲在不同物理結點上。分布性表現在數據庫中的數據不是存儲在同一計算機的存儲設備上。
分布式系統希望增加數據冗余,在不同場地存儲同一數據的多個副本,其原因是:
(1)提高系統可靠性、可用性:當系統某一場地出現故障,系統可對另一場地的相同副本進行操作。不會因一處故障導致系統癱瘓。
(2)提高系統性能:可以根據距離選擇離用戶最近的副本,減少網絡通信代價,改善性能。
主要特點:
獨立透明性:用戶不必關心數據的邏輯分區,不必關系數據物理分區細節。用戶應用程序書寫和數據沒有進行分布存儲一樣。數據分布的信息由系統存儲在數據字典中,用戶對非本地數據的訪問請求由系統根據數據字典進行解釋、轉換、傳送。
集中結點結合:數據庫是用戶共享的資源,在分布式數據庫中,數據的共享有兩個層次:一是局部共享,局部數據庫存儲局部場地各用戶的共享數據(本地用戶常用)。二是全局共享,即分布式數據庫的各個場地存儲可供其他場地用戶共享的數據,支持系統全局應用。因此有倆相應控制結構:集中和自制。各局部DBMS獨立管理局部數據庫;同時系統設置集中控制機制,協調局部DMS工作。
復制透明性:用戶不關心網絡中各結點的復制情況,由系統自動完成。
易于擴展性:可增加多個服務器進一步分布數據和分擔處理任務
優點:
(1)靈活的體系結構
(2)系統可靠性高,可用性好
(3)局部應用響應速度快
(4)可擴展性好
缺點:
(1)系統開銷大,主要是通信
(2)復雜存取結構
(3)數據的安全性和保密性難處理
?
?
分布式數據庫與并行數據庫的區別:
結點地位不同:
DDB的結構與PDB的SN結構看似相似,卻又很大不同:
邏輯上PDB系統中N個結點并不平等。其中只有一個節點與用戶接口,負責接受用戶請求,輸出處理結果,確定執行方案,而其余節點只具有執行操作和彼此通信能力。PDB在邏輯上是一個 具有一個前臺處理機和多個后天處理機結點模型的系統。結點在數據處理中只發揮協同作用。
DDB中各結點從邏輯上完全平等,沒有主次之分。DDB中各結點除了能通過網絡協同完成全局事務外,還具有場地自治性。
應用目標不同:
PDB目標是發揮并行計算機的優勢,利用各處理器結點并行完成數據庫任務。
DDB目標在于實現場地自治和數據的全局透明共享,不要求利用網絡中各結點提供處理性能
實現方式不同:
PDB為了充分利用各結點處理能力,采用高速網絡連接。傳輸代價相對較低。某些結點空閑,可將負載大的結點的任務通過高速網傳給空閑結點處理。
DDB為了滿足分布特點,各結點采用局域網或廣域網相連,網絡帶寬較低,結點間通信開銷大,因此查詢處理時盡量較少結點間的數據傳輸量。
?
?
以上內容部分參考自:
https://blog.csdn.net/wyzxg/article/details/5371163
https://blog.csdn.net/CHS007chs/article/details/77941037
https://blog.csdn.net/guotianlaile/article/details/53580290
總結
以上是生活随笔為你收集整理的并行数据库 分布式数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mining Precision Int
- 下一篇: 2PC协议(2-phase-commit