細數運行在微軟平臺上的NoSql數據庫

Max Indelicato曾發表過一篇文章《NoSQL on the Microsoft Platform》,文中列舉了運行在微軟平臺上的NoSQL數據庫,並分別對這些數據進行了介紹,現將對此文的翻譯轉載於此,供大家學習:

從可查詢的分佈式解決方案,如MongoDB,到簡單的分佈式Key/Value存儲解決方案,如Cassandra。此外,還有Riak,Tokyo Cabinet,Voldemort,CouchDB和Redis。但目前僅有少量的NoSQL項目支持在Windows平臺上運行,如果要說到生產應用那就更少了。

Memcached

Memcached傳統上認爲它不屬於NoSQL的範疇,而是一個分佈式Key/Value內存緩存解決方案,它可以用來存儲各種各樣的臨時數據集,存儲方式和其它NoSQL數據庫解決方案沒有什麼差別。

 

NorthScale提供了適合於32位和64位Windows平臺的Memcached程序包,可從這裏免費下載。

MongoDB

 

MongoDB是一個基於文檔(JSON風格)的數據存儲引擎,通過它的自動分片功能可實現良好的水平擴展能力,它使用了一個簡單但功能很強大的基於JavaScript/JSON的查詢語言,提供了快速插入和更新能力,主要歸功於它的低開銷原子修改程序。此外,使用Map/Reduce實現了跨多個MongoDB數據庫聚合和數據處理。

MongoDB背後的10Gen公司前不久正式宣佈了對Windows平臺的支持。MongoDB目前的最新版本是1.6.0,許多大型Web站點現在都在使用它。關於MongoDB Windows版本的更多信息請移步這裏,對應的版本可從這裏下載。

sones GraphDB

 

sones GraphDB是一個企業圖形數據存儲引擎,它使用C#語言開發,並且是開源的,對於非商業目的可以免費下載,但如果用於商業目的則需要購買商業許可。

圖形數據庫和我們常說的NoSQL數據庫存儲方式是不同的,它們更善於處理一類特定的問題:數據集包含了大量的關係,需要快速高效地遍歷這些關係。

圖形數據庫一個常見的用例就是用來存儲社交關係或社交圖,通常,這些社交圖由許多節點組成,節點之間存在許多獨立的關係,這是傳統關係數據庫很難處理好的問題域。如果你對sones GraphDB感興趣,可從這裏下載它的源代碼,更多信息請訪問該項目的官方網站。

Voldemort

Voldemort是一個分佈式Key/Value存儲系統,LinkedIn用它解決了網站的高擴展性存儲問題,簡單的分區功能已經不能滿足LinkedIn的需要。Voldemort使用Java編寫,因此藉助Java的跨平臺特性,它也可以運行在Windows平臺上。請閱讀這篇文章瞭解如何在Windows平臺上安裝Voldemort。

NoSQL項目機會

對於Microsoft世界來說這是一個激動人心的時刻,但目前Microsoft陣營採用NoSQL的節奏還非常慢,因對機會也比較多,如果能開發出優秀的NoSQL託管存儲解決方案,一定會很受歡迎。

ESENT分佈式數據存儲

關於ESENT,我能想到最恰當的比喻是,它是Microsoft世界的BerkeleyDB,鮮爲人知,很少有.NET開發人員使用它,但它的性能和可靠性已經經受住了時間的考驗。

ESENT是一個原生支持Windows的嵌入式數據庫引擎,它是CodePlex上的一個託管項目,最新的Windows版本已經內置了esent.dll。

我做了一些測試,它的速度真是太快了,每秒可以執行大約10萬次插入操作,夠變態吧。關於性能的更多統計數字請看這裏。

內存字典式分佈式數據存儲

內存字典式分佈式數據存儲和ESENT有點類似,但不同的是它的數據完全存儲在內存中。他可以作爲分佈式緩存的基礎,也可以跨一系列節點複製數據而實現持久化,任何時間只要有一個節點可用,數據都是可以訪問的,Amazon或其它基於雲的非持久化服務器解決方案可以完美地實現託管,我是這種解決方案的堅決支持者。

最後的想法

對.NET開發人員來說,使用NoSQL解決方案目前還有一些限制,但隨時間的推移,肯定會有越來越多的NoSQL解決方案可供選擇,作爲一名.NET開發人員,我們也應該參與到這些項目中去,以期早日解決現在存在的問題,這也是.NET開發人員的一次難得的機會。

我認爲能給Microsoft陣營介紹NoSQL解決方案是一件非常興奮的事,以後我也將努力參與到這些項目中去,如果你也願意成爲一名志願者,我們隨時歡迎你。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章