天天看點

分布式的Key-Value存儲系統Cassandra

http://www.oschina.net/p/cassandra

Apache Cassandra是一套開源分布式資料庫管理系統。它最初由Facebook開發,用于儲存特别大的資料。Facebook目前在使用此系統。

主要特性:

  • 分布式
  • 基于column的結構化
  • 高伸展性

Cassandra的主要特點就是它不是一個資料庫,而是由一堆資料庫節點共同構成的一個分布式網絡服務,對Cassandra 的一個寫操作,會被複制到其他節點上去,對Cassandra的讀操作,也會被路由到某個節點上面去讀取。對于一個Cassandra群集來說,擴充性能 是比較簡單的事情,隻管在群集裡面添加節點就可以了。

Cassandra是一個混合型的非關系的資料庫,類似于Google的BigTable。其主要功能比 Dynomite(分布式的Key-Value存 儲系統)更豐富,但支援度卻不如文檔存儲MongoDB(介于關系資料庫和非關系資料庫之間的開源産品,是非關系資料庫當中功能最豐富,最像關系資料庫 的。支援的資料結構非常松散,是類似json的bjson格式,是以可以存儲比較複雜的資料類型。)Cassandra最初由Facebook開發,後轉變成了開源項目。它是一個網絡社交雲計算方面理想的資料庫。以Amazon專有的完全分布式的Dynamo為基礎,結合了Google BigTable基于列族(Column Family)的資料模型。P2P去中心化的存儲。很多方面都可以稱之為Dynamo 2.0。

功能

Cassandra的主要特點就是它不是一個資料庫,而是由一堆資料庫節點共同構成的一個分布 式網絡服務,對Cassandra 的一個寫操作,會被複制到其他節點上去,對Cassandra的讀操作,也會被路由到某個節點上面去讀取。對于一個Cassandra群集來說,擴充性能 是比較簡單的事情,隻管在群集裡面添加節點就可以了。 這裡有很多理由來選擇Cassandra用于您的網站。

和其他資料庫比較,有幾個突出特點:

模式靈活 :使用Cassandra,像文檔存儲,你不必提前解決記錄中的字段。你可以在系統運作時随意的添加或移除字段。這是一個驚人的效率提升,特别是在大型部 署上。

真正的可擴充性 :Cassandra是純粹意義上的水準擴充。為給叢集添加更多容量,可以指向另一台電腦。你不必重新開機任何程序,改變應用查詢,或手動遷移任何資料。

多資料中心識别 :你可以調整你的節點布局來避免某一個資料中心起火,一個備用的資料中心将至少有每條記錄的完全複制。

一些使Cassandra提高競争力的其他功能:

範圍查詢 :如果你不喜歡全部的鍵值查詢,則可以設定鍵的範圍來查詢。

清單資料結構 :在混合模式可以将超級列添加到5維。對于每個使用者的索引,這是非常友善的。

分布式寫操作 :有可以在任何地方任何時間集中讀或寫任何資料。并且不會有任何單點失敗。

  • 授權協定: Apache License 2.0
  • 開發語言: Java
  • 作業系統: 跨平台 
  • 軟體首頁: http://incubator.apache.org/cassandra/
  • 文檔位址: http://wiki.apache.org/cassandra/GettingStarted
  • 下載下傳位址: http://incubator.apache.org/cassandra/download/