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