国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種實(shí)現(xiàn)低成本數(shù)據(jù)庫(kù)冗余陣列的ClusteredJDBC方法

2015-04-02 14:19:49趙紅巖
無(wú)線互聯(lián)科技 2015年2期
關(guān)鍵詞:集群數(shù)據(jù)庫(kù)

趙紅巖

摘 要:文章介紹了低成本數(shù)據(jù)庫(kù)冗余陣列的基本模型和體系結(jié)構(gòu),并重點(diǎn)分析了使用低成本數(shù)據(jù)庫(kù)冗余陣列實(shí)現(xiàn)Clustered JDBC的基本原理。

關(guān)鍵詞:數(shù)據(jù)庫(kù);集群;JDBC

1 引言

通過高速網(wǎng)絡(luò)連接起來(lái)的工作站集群系統(tǒng)為用戶提供了積累的處理能力和巨大的數(shù)據(jù)存儲(chǔ)空間,并且以其高性價(jià)比和良好的可擴(kuò)展性越來(lái)越多的應(yīng)用于高性能科學(xué)計(jì)算和事務(wù)處理中,但目前只有web服務(wù)和應(yīng)用服務(wù)應(yīng)用于集群,而數(shù)據(jù)庫(kù)仍然被保留在大型的專用對(duì)稱多處理機(jī)上,因此其應(yīng)用程序的性能往往被數(shù)據(jù)庫(kù)的性能所限制。因此,如何在低成本的情況下提高性能,實(shí)現(xiàn)數(shù)據(jù)庫(kù)的可擴(kuò)展性和高實(shí)用性,從而適用于各種事務(wù)處理是一個(gè)有待解決的問題。RAIDb的目標(biāo)就是提供比單一數(shù)據(jù)庫(kù)更好的性能和容錯(cuò),并且可以將不同的數(shù)據(jù)庫(kù)融合到一個(gè)數(shù)據(jù)庫(kù)隊(duì)列中去,它的主要目標(biāo)是低成本的軟件和硬件。

2 低成本數(shù)據(jù)庫(kù)冗余陣列(RAIDb)體系結(jié)構(gòu)

低成本數(shù)據(jù)庫(kù)冗余陣列體系結(jié)構(gòu)如圖1所示??蛻舳税l(fā)送請(qǐng)求到RAIDb控制器端,RAIDb控制器端再將這些請(qǐng)求分發(fā)在一批關(guān)系類型數(shù)據(jù)庫(kù)管理系統(tǒng)后端,對(duì)于客戶端來(lái)說(shuō)就類似于操作一個(gè)單一的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)一樣。

RAIDb控制器能夠提供不同程度的服務(wù),控制器必須確定數(shù)據(jù)庫(kù)表在每個(gè)關(guān)系類型數(shù)據(jù)庫(kù)的后節(jié)點(diǎn)上是可用的,以至于所有的請(qǐng)求通過分析SQL的聲明能夠被發(fā)送到正確的節(jié)點(diǎn)上。

3 實(shí)現(xiàn)Clustered JDBC的基本原理

3.1 基本RAIDb分級(jí)

3.1.1 RAIDb-0完全分割

RAIDb-0與RAID-0相似,RAIDb-0將所有的數(shù)據(jù)庫(kù)表分割到所有節(jié)點(diǎn)之中。如圖2所示,給出了一個(gè)將N個(gè)數(shù)據(jù)庫(kù)表分割到5個(gè)節(jié)點(diǎn)上的例子。RAIDb-0要使用至少2個(gè)數(shù)據(jù)庫(kù)后節(jié)點(diǎn),但由于它沒有表的副本,因此導(dǎo)致其沒有容錯(cuò)的功能。

3.1.2 RAIDb-1完全復(fù)制

RAIDb-1和RAID-1相似,RAIDb-1將數(shù)據(jù)庫(kù)完全復(fù)制到每個(gè)節(jié)點(diǎn)上,RAIDb-1需要每個(gè)后節(jié)點(diǎn)都有足夠大的存儲(chǔ)空間以用來(lái)保存所有的數(shù)據(jù)庫(kù)數(shù)據(jù),基本結(jié)構(gòu)如圖3所示。RAIDb-1最少的節(jié)點(diǎn)數(shù)量為2個(gè)節(jié)點(diǎn),當(dāng)一個(gè)數(shù)據(jù)庫(kù)出現(xiàn)故障時(shí)其它的節(jié)點(diǎn)依然能夠正常工作,因此RAIDb-1提供了更好的容錯(cuò)能力。

3.1.3 RAIDb-2部分復(fù)制

RAIDb-2是在綜合了RAIDb-0和RAIDb-1兩者的優(yōu)點(diǎn)的基礎(chǔ)上提出的一種新的解決方案,RAIDb-2不需要每個(gè)節(jié)點(diǎn)都存放一個(gè)完整的數(shù)據(jù)庫(kù)備份。RAIDb-2至少需要提供3個(gè)節(jié)點(diǎn),一個(gè)是數(shù)據(jù)庫(kù)的完全備份,其它的節(jié)點(diǎn)對(duì)應(yīng)一個(gè)或多個(gè)數(shù)據(jù)表的備份,工作原理如圖4所示。例如一個(gè)數(shù)據(jù)庫(kù)文件包含3張數(shù)據(jù)表:tablex,tabley,tablez;第一個(gè)數(shù)據(jù)庫(kù)后的節(jié)點(diǎn)包含了完整數(shù)據(jù)庫(kù)的備份,其它的節(jié)點(diǎn)上包含一個(gè)兩個(gè)數(shù)據(jù)表,對(duì)于tablex和tabley共有3個(gè)備份,tablez有2個(gè)備份,無(wú)論那個(gè)節(jié)點(diǎn)出現(xiàn)故障,都能從別的節(jié)點(diǎn)上成功找到數(shù)據(jù)。

3.2 RAIDb基本級(jí)別的組合

由于一個(gè)RAIDb控制器的數(shù)據(jù)庫(kù)后端的連接節(jié)點(diǎn)的數(shù)量是有限的,因此將多個(gè)RAIDb控制器組合在一起就可以建立更多數(shù)據(jù)量的數(shù)據(jù)庫(kù)管理系統(tǒng)。如圖5所示,顯示了兩個(gè)RAIDb級(jí)別的組合情況,第一個(gè)等級(jí)是RAIDb-1控制器,它被當(dāng)作3個(gè)完整數(shù)據(jù)庫(kù)的后端,在第2個(gè)等級(jí)中,每個(gè)完整的數(shù)據(jù)庫(kù)由一個(gè)包含不同配置的RAIDb-0來(lái)實(shí)現(xiàn),這種組合可以被表示為RAIDb-1-0。

如圖6所示,給出了一個(gè)RAIDb-0-1的組合,利用RAIDb-1控制器將數(shù)據(jù)庫(kù)分割成3個(gè)部分,在上端的RAIDb-0中平衡3個(gè)下端的RAIDb-1控制器上的請(qǐng)求。

理論上來(lái)講,對(duì)于RAIDb組合的深度沒有限制,也可以用相同的RAIDb控制器等級(jí)來(lái)進(jìn)行組合。例如,一個(gè)RAIDb-1-1組合可以被看作一個(gè)大數(shù)量的鏡像數(shù)據(jù)庫(kù)的解決方案,這種樹型的體系結(jié)構(gòu)通常是大型數(shù)據(jù)庫(kù)集群的解決方案。

4 Clustered JDBC的實(shí)現(xiàn)

Clustered是緊密連接的一組計(jì)算機(jī),用來(lái)持續(xù)性地提供高性能的計(jì)算服務(wù),把一組計(jì)算機(jī)連在一起并非難事,但要讓他們獲得很高的性能就不那么容易了。Cluster的初衷在于以沒有單點(diǎn)故障的體系結(jié)構(gòu)來(lái)達(dá)到系統(tǒng)的高可用性和可伸縮性,而且要求采用通用標(biāo)準(zhǔn)的計(jì)算機(jī),而不是特殊專用的計(jì)算機(jī)部件,從而能以較低的成本獲得較好的可伸縮性。Cluster中的計(jì)算機(jī)應(yīng)當(dāng)具有非常好的協(xié)同性。如果一臺(tái)計(jì)算機(jī)的性能不足以完成某項(xiàng)任務(wù),其它的系統(tǒng)成員就會(huì)加入進(jìn)來(lái),共同執(zhí)行這項(xiàng)任務(wù)。應(yīng)用實(shí)踐證明,由通用的計(jì)算機(jī)部件協(xié)同工作,完全可能使其運(yùn)算能力超過大型主機(jī)、超級(jí)計(jì)算機(jī)和容錯(cuò)系統(tǒng),而且具有更低的成本。

JDBC(Java DataBase Connectivity)是Java與數(shù)據(jù)庫(kù)的接口規(guī)范,JDBC定義了一個(gè)支持標(biāo)準(zhǔn)SQL功能的通用低層的API,它由Java語(yǔ)言編寫的類和接口組成,旨在讓各數(shù)據(jù)庫(kù)開發(fā)商為Java程序員提供標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)API。

本文設(shè)計(jì)和實(shí)現(xiàn)了一個(gè)RAIDb的應(yīng)用,該應(yīng)用是一個(gè)以JDBC為基礎(chǔ)的JAVA中間件,它能夠建立所有的RAIDb配置,該軟件提供了一個(gè)JDBC驅(qū)動(dòng)器,并可以工作在任何現(xiàn)有的商業(yè)的或開源的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)上。

5 結(jié)語(yǔ)

文章先對(duì)低成本數(shù)據(jù)庫(kù)冗余陣列(RAIDb)進(jìn)行了簡(jiǎn)單介紹,然后通過對(duì)基本模型、體系結(jié)構(gòu)以及實(shí)現(xiàn)方法的討論分析了Clustered JDBC的原理。

[參考文獻(xiàn)]

[1]Christiana Amaz,Alan L.Cox.Willy zwaenepoel-conflict-aware scheduling for dynamic content applications[C]. Proceedings of USITS 2003,March 2003.

[2]Enhydra octopus[EB/OL].http://octopus.enhydra.org.

[3]Bettina Kemme.Database replication for clusters of workstations[D].ph.D.thesis nr.13864,Swiss Federal Institute of Technology Zurich.2000.

猜你喜歡
集群數(shù)據(jù)庫(kù)
集群式AUV可控分群控制算法
海上小型無(wú)人機(jī)集群的反制裝備需求與應(yīng)對(duì)之策研究
一種無(wú)人機(jī)集群發(fā)射回收裝置的控制系統(tǒng)設(shè)計(jì)
電子制作(2018年11期)2018-08-04 03:25:40
數(shù)據(jù)庫(kù)
Python與Spark集群在收費(fèi)數(shù)據(jù)分析中的應(yīng)用
數(shù)據(jù)庫(kù)
勤快又呆萌的集群機(jī)器人
對(duì)構(gòu)建智慧產(chǎn)業(yè)集群的幾點(diǎn)思考
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
富宁县| 大悟县| 高陵县| 镇坪县| 吴旗县| 施秉县| 吉林市| 河池市| 响水县| 临沧市| 克什克腾旗| 中西区| 睢宁县| 龙川县| 绥阳县| 个旧市| 商南县| 稻城县| 罗定市| 安乡县| 邳州市| 栾城县| 平山县| 米林县| 邵阳市| 嘉荫县| 卓尼县| 衡阳县| 永吉县| 仁布县| 吴川市| 城步| 衢州市| 古蔺县| 吐鲁番市| 长岛县| 丰台区| 勃利县| 太保市| 江川县| 宣威市|