国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

理解MySQL―并行數(shù)據(jù)庫與分區(qū)(Partion)

2024-07-24 12:40:29
字體:
供稿:網(wǎng)友
1、并行數(shù)據(jù)庫
1.1、并行數(shù)據(jù)庫的體系結(jié)構(gòu)
并行機(jī)的出現(xiàn),催生了并行數(shù)據(jù)庫的出現(xiàn),不對(duì),應(yīng)該是關(guān)系運(yùn)算本來就是高度可并行的。對(duì)數(shù)據(jù)庫系統(tǒng)性能的度量主要有兩種方式:(1)吞吐量(Throughput),在給定的時(shí)間段里所能完成的任務(wù)數(shù)量;(2)響應(yīng)時(shí)間(Response time),單個(gè)任務(wù)從提交到完成所需要的時(shí)間。對(duì)于處理大量小事務(wù)的系統(tǒng),通過并行地處理許多事務(wù)可以提高它的吞吐量。對(duì)于處理大事務(wù)的系統(tǒng),通過并行的執(zhí)行事務(wù)的子任務(wù),可以縮短系統(tǒng)晌應(yīng)時(shí)間。
并行機(jī)有三種基本的體系結(jié)構(gòu),相應(yīng)的,并行數(shù)據(jù)庫的體系結(jié)構(gòu)也可以大概分為三類:
    共享內(nèi)存(share memeory):所有處理器共享一個(gè)公共的存儲(chǔ)器;
    共享磁盤(share disk):所有處理器共享公共的磁盤;這種結(jié)構(gòu)有時(shí)又叫做集群(cluster);
    無共享(share nothing):所有處理器既不共享內(nèi)存,也不共享磁盤。
如圖所示:

1.1.1、    共享內(nèi)存
該結(jié)構(gòu)包括多個(gè)處理器、一個(gè)全局共享的內(nèi)存(主存儲(chǔ)器)和多個(gè)磁盤存儲(chǔ),各個(gè)處理器通過高速通訊網(wǎng)絡(luò)(Interconnection Network)與共享內(nèi)存連接,并均可直接訪問系統(tǒng)中的一個(gè)、多個(gè)或全部的磁盤存儲(chǔ),在系統(tǒng)中,所有的內(nèi)存和磁盤存儲(chǔ)均由多個(gè)處理器共享。
這種結(jié)構(gòu)的優(yōu)點(diǎn)在于,處理器之間的通信效率極高,訪問內(nèi)存的速度要比消息通信機(jī)制要快很多。這種結(jié)構(gòu)的缺點(diǎn)在于,處理器的規(guī)模不能超過32個(gè)或者64個(gè),因?yàn)榭偩€或互邊網(wǎng)絡(luò)是由所有的處理器共享,它會(huì)變成瓶頸。當(dāng)處理器數(shù)量到達(dá)某一個(gè)點(diǎn)時(shí),再增加處理器已經(jīng)沒有什么好處。
共享內(nèi)存結(jié)構(gòu)通常在每個(gè)處理器上有很大的高速緩存,從而減少對(duì)內(nèi)存的訪問。但是,這些高速緩存必須保持一致,也就是緩存一致性(cache-coherency)的問題。
1.1.2、    共享磁盤
該結(jié)構(gòu)由多個(gè)具有獨(dú)立內(nèi)存(主存儲(chǔ)器)的處理器和多個(gè)磁盤存儲(chǔ)構(gòu)成,各個(gè)處理器相互之間沒有任何直接的信息和數(shù)據(jù)的交換,多個(gè)處理器和磁盤存儲(chǔ)由高速通信網(wǎng)絡(luò)連接,每個(gè)處理器都可以讀寫全部的磁盤存儲(chǔ)。
共享磁盤與共享內(nèi)存結(jié)構(gòu)相比,有以下一些優(yōu)點(diǎn):(1)每個(gè)處理器都有自己的存儲(chǔ)器,存儲(chǔ)總線不再是瓶頸;(2)以一種較經(jīng)濟(jì)的方式提供了容錯(cuò)性(fault tolerence),如果一個(gè)處器發(fā)生故障,其它處理器可以代替工作。
該結(jié)構(gòu)的主要問題不是在于可擴(kuò)展性問題,雖然存儲(chǔ)總線不是瓶頸,但是,與磁盤之間的連接又成了瓶頸。
運(yùn)行Rdb的DEC集群是共享磁盤的體系結(jié)構(gòu)的早期商用化產(chǎn)品之一(DEC后來被Compaq公司收購,再后來,Oracle又從Compaq手中取得Rdb,發(fā)展成現(xiàn)在的Oracle RAC)。
1.1.3、    無共享
該結(jié)構(gòu)由多個(gè)完全獨(dú)立的處理節(jié)點(diǎn)構(gòu)成,每個(gè)處理節(jié)點(diǎn)具有自己獨(dú)立的處理器、獨(dú)立的內(nèi)存(主存儲(chǔ)器)和獨(dú)立的磁盤存儲(chǔ),多個(gè)處理節(jié)點(diǎn)在處理器級(jí)由高速通信網(wǎng)絡(luò)連接,系統(tǒng)中的各個(gè)處理器使用自己的內(nèi)存獨(dú)立地處理自己的數(shù)據(jù)。
這 種結(jié)構(gòu)中,每一個(gè)處理節(jié)點(diǎn)就是一個(gè)小型的數(shù)據(jù)庫系統(tǒng),多個(gè)節(jié)點(diǎn)一起構(gòu)成整個(gè)的分布式的并行數(shù)據(jù)庫系統(tǒng)。由于每個(gè)處理器使用自己的資源處理自己的數(shù)據(jù),不存 在內(nèi)存和磁盤的爭(zhēng)用,提高的整體性能。另外這種結(jié)構(gòu)具有優(yōu)良的可擴(kuò)展性——只需增加額外的處理節(jié)點(diǎn),就可以以接近線性的比例增加系統(tǒng)的處理能力。
    這種結(jié)構(gòu)中,由于數(shù)據(jù)是各個(gè)處理器私有的,因此系統(tǒng)中數(shù)據(jù)的分布就需要特殊的處理,以盡量保證系統(tǒng)中各個(gè)節(jié)點(diǎn)的負(fù)載基本平衡,但在目前的數(shù)據(jù)庫領(lǐng)域,這個(gè)數(shù)據(jù)分布問題已經(jīng)有比較合理的解決方案。
由于數(shù)據(jù)是分布在各個(gè)處理節(jié)點(diǎn)上的,因此,使用這種結(jié)構(gòu)的并行數(shù)據(jù)庫系統(tǒng),在擴(kuò)展時(shí)不可避免地會(huì)導(dǎo)致數(shù)據(jù)在整個(gè)系統(tǒng)范圍內(nèi)的重分布(Re-Distribution)問題。
    Shared-Nothing結(jié)構(gòu)的典型代表是Teradata(并行數(shù)據(jù)庫的先驅(qū)),值得一提的是,MySQL NDB Cluster也使用了這種結(jié)構(gòu)。

 1.2、I/O并行(I/O Parallelism)
I/O并行的最簡(jiǎn)單形式是通過對(duì)關(guān)系劃分,放置到多個(gè)磁盤上來縮減從磁盤讀取關(guān)系的時(shí)間。并行數(shù)據(jù)庫中數(shù)據(jù)劃分最通用的形式是水平劃分(horizontal portioning),一個(gè)關(guān)系中的元組被劃分到多個(gè)磁盤。
1.2.1、常用劃分技術(shù)
假定將數(shù)據(jù)劃分到n個(gè)磁盤D0,D1,…,Dn中。
(1)    輪轉(zhuǎn)法(round-bin)。對(duì)關(guān)系順序掃描,將第i個(gè)元組存儲(chǔ)到標(biāo)號(hào)為Di%n的磁盤上;該方式保證了元組在多個(gè)磁盤上均勻分布。
(2)    散列劃分(hash partion)。選定一個(gè)值域?yàn)閧0, 1, …,n-1}的散列函數(shù),對(duì)關(guān)系中的元組基于劃分屬性進(jìn)行散列。如果散列函數(shù)返回i,則將其存儲(chǔ)到第i個(gè)磁盤。
(3)    范圍劃分(range partion)。
由于將關(guān)系存儲(chǔ)到多個(gè)磁盤,讀寫時(shí)能同時(shí)進(jìn)行,劃分(partion)能大大提高系統(tǒng)的讀寫性能。數(shù)據(jù)的存取可以分為以下幾類:
(1)    掃描整個(gè)關(guān)系;
(2)    點(diǎn)查詢(point query),如name = “hustcat”;
(3)    范圍查詢(range query),如 20 < age < 30。
不同的劃分技術(shù),對(duì)這些存取類型的效率是不同的:
    輪轉(zhuǎn)法適合順序掃描關(guān)系,對(duì)點(diǎn)查詢和范圍查詢的處理較復(fù)雜。
    散列劃分特別適合點(diǎn)查詢,速度最快。
    范圍劃分對(duì)點(diǎn)查詢、范圍查詢以及順序掃描都支持較好,所以適用性很廣。但是,這種方式存在一個(gè)問題——執(zhí)行偏斜(execution skew),也就是說某些范圍的元組較多,使得大量的I/O出現(xiàn)在某幾個(gè)磁盤。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 东兴市| 银川市| 德惠市| 湘潭县| 韶关市| 苏州市| 容城县| 乐山市| 宜兴市| 茂名市| 肃宁县| 龙口市| 广河县| 中宁县| 中江县| 布拖县| 永宁县| 炎陵县| 曲阜市| 郁南县| 绥宁县| 临漳县| 桃源县| 巴彦淖尔市| 班玛县| 平利县| 股票| 汉源县| 平和县| 京山县| 车致| 博乐市| 黑河市| 九江县| 洞口县| 嘉禾县| 本溪市| 萍乡市| 江达县| 桐庐县| 双峰县|