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