云計算中無法使用關(guān)系型數(shù)據(jù)庫?
導(dǎo)讀:最近對云計算的關(guān)注增加了鍵/值數(shù)據(jù)庫的使用,有關(guān)這種存儲方式最常見的主題便是其伸縮性。對各廠商來說,即使無需構(gòu)建高度伸縮的應(yīng)用程序或服務(wù),云計算的其他一些優(yōu)勢也對它們有著強(qiáng)大的吸引力——盡管良好的伸縮性是云計算的關(guān)鍵要素之一。關(guān)系型數(shù)據(jù)庫究竟在云計算中能否使用呢?下文中將給出答案。
目前可以猜測的使用場景有:
創(chuàng)業(yè)公司無需在本地服務(wù)器上進(jìn)行投資,只要購買它們的計算和存儲即可。
公司想要將現(xiàn)有的應(yīng)用程序或服務(wù)器移植到云上時,它們無需重新架構(gòu)他們的數(shù)據(jù)層。
需要在較短的時間段內(nèi)獲得大量計算能力。
Tony Bain最近發(fā)布了一篇文章,探討關(guān)系數(shù)據(jù)庫的末日是否已經(jīng)來臨。他將目光對準(zhǔn)關(guān)系型數(shù)據(jù)庫和鍵/值數(shù)據(jù)庫的區(qū)別,以及從兩者選擇其一的原因上。根據(jù)Tony的說法,關(guān)系型數(shù)據(jù)庫在伸縮性上會遇到一些挑戰(zhàn):
當(dāng)越來越多的應(yīng)用程序發(fā)布于高負(fù)荷(例如Web Services)環(huán)境中時,它們對伸縮性的需求將會十分明顯。首先,它們會迅速增長。其次,它們最終的規(guī)模也會非??捎^。對于前者來說,我們難以管理單個內(nèi)部服務(wù)器上部署的關(guān)系型數(shù)據(jù)庫,例如你的負(fù)載一夜之間增加兩倍,你升級硬件的速度又能有多快?而后者一直便是關(guān)系型數(shù)據(jù)庫在管理上的難點(diǎn)。
他列舉了四種選擇鍵/值數(shù)據(jù)庫,而不是關(guān)系型數(shù)據(jù)庫原因:
1、你的數(shù)據(jù)是高度面向文件的。
2、你的開發(fā)環(huán)境是高度面向?qū)ο蟮摹?/p>
3、你的數(shù)據(jù)存儲很便宜,并且很容易和合作伙伴的Web Service平臺集成。
4、你的***關(guān)注的是按需增長,規(guī)模龐大的伸縮能力。
David Chappell在他關(guān)于Azure服務(wù)器平臺的文件中簡單討論了這個問題。David提出了在云中使用鍵/值數(shù)據(jù)庫的多種原因,不過他也談到:
……微軟宣布了一個計劃:將SQL Data Service更進(jìn)一步關(guān)系化。與Windows Azure存儲不同,SQL Data Service構(gòu)建于SQL Server之上,使得這種發(fā)展更加自然。無論這種模型是什么樣的,這個技術(shù)的目標(biāo)是不變的:提供一種伸縮性更強(qiáng),更可靠,成本更低的云數(shù)據(jù)庫,并適合各種類型的應(yīng)用程序。
依賴于不同的關(guān)系型特性,有以上需求的公司可以更容易地采納這種技術(shù),并以此降低成本。
類似由Brian Aker發(fā)起的Drizzle數(shù)據(jù)庫,它的目標(biāo)是可伸縮的關(guān)系型能力。Drizzle基于MySQL 6.0的原代碼,并針對云和網(wǎng)絡(luò)應(yīng)用程序進(jìn)行了優(yōu)化?,F(xiàn)在他們已經(jīng)從原來的代碼中去除了許多功能,并增加了許多新特性:
1、微內(nèi)核架構(gòu),使Drizzle比MySQL更為模塊化
2、更多接口,如認(rèn)證和日志記錄
3、多核優(yōu)化(與MySQL相比)
4、更少的數(shù)據(jù)類型
5、更少的引擎
6、更少的代碼,相對更小并且更易于維護(hù)的代碼庫
Drizzle仍處于Alpha階段,它為類Unix操作系統(tǒng)開發(fā),目前不支持Windows。
【編輯推薦】