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