在本文中,我們將介紹Cassandra名字的含義、Cassandra的發展簡史、Cassandra這項技術的特點及優勢,以及對於這項技術的未來展望。
本文將用淺顯易懂的方式,幫助您將對Cassandra這項技術的前世今生有一個粗略的了解。
誰是Cassandra
Apache Cassandra™是一種分布式的NoSQL數據庫。它具有成功應用所需的持續可用性、高性能、可線性擴展等特點。

Cassandra(卡珊德拉)是希臘神話中特洛伊國王普里阿摩斯的女兒,她是一個具有預言能力的先知,卻因受到阿波羅詛咒,其預言永遠不得被人們相信。Cassandra預見到了特洛伊城的毀滅,卻因無人相信而無力阻止。
有人曾這樣評述卡珊德拉:她和古希伯來的眾先知一樣直視事理的真相,不論過去、現在或未來;但是她的明晰無誤的眼力,和她心中負荷的宇宙事理的可怖奧秘,卻使她隔絕於正常的人生,使她在世人眼中成了個瘋子。這便是古來先知們一再遭遇的命運。

雖然Cassandra作為先知不被人相信,但是作為一種面向未來的技術,越來越多的開發者和科技公司已經看到了Cassandra的價值並且從中受益。
Cassandra簡介
Apache Cassandra是一種開源的、分布式的NoSQL數據庫。它最早是由Facebook內部開發,后來於2008年7月公開了源碼。
Cassandra不僅具有現代應用所要求的持續可用性(沒有宕機時間)、高性能以及線性擴展的特點,其操作也十分簡易,而且可以便捷地跨數據中心和跨區域進行數據復制。
Cassandra可以支持PB級別的信息處理,也可以負載每秒上百萬條的並發操作。強大的功能使得Cassandra能夠幫助企業和組織在多雲及混合雲架構中處理巨量的數據。
作為一個在Cassandra這項技術上深耕十余年的企業,DataStax致力於同開源社區一起開創屬於Cassandra的世代,並鞏固其在雲原生應用數據庫中的領先地位。

Cassandra簡史
Cassandra最早是由Facebook工程師Avinash Lakshman和Prashant Malik開發,用於提高Facebook郵件收件箱的搜索功能。通過使用Cassandra,用戶可以更快地找到他們需要的郵件和內容。
Cassandra的架構結合了亞馬遜Dynamo論文中提出的分發模型和Google BigTable論文中描述的日志結構存儲引擎(log-structured storage engine),從而實現了在不同節點間的橫向拓展。其結果是Cassandra作為一種高可拓展性的數據庫,能搞定大多數數據量巨大及性能密集型的使用場景。
2008年7月,Facebook公開了Cassandra的源碼。2009年3月,Cassandra成為了Apache孵化器的開源項目。之后在2010年4月,Cassandra從Apache孵化器畢業,成為了Apache基金會的最高級別項目之一。時至今日,Cassandra在Apache許可證2.0版本下可自由使用。

DataStax的團隊由Cassandra數據庫演進過程中的領軍人物組成,他們貢獻了Cassandra 3.0版本中大部分的代碼。在4.0及之后的版本中,我們的團隊也在持續積極地與開源社區緊密合作,為Cassandra的未來貢獻所能。
技術特點及優勢
01 開源
從Linux這樣的操作系統到管理數據的基礎設施,當代的軟件開發組織已經大量地在使用開源技術。開源技術的吸引力不僅來自於其可負擔性和可延展性,其避免被套牢捆綁的靈活性也相當受到歡迎。
使用開源技術的企業和團體往往能更快地習得新技術且進行創新。
02 靈活性,相似的接口
Cassandra查詢語句(CQL)與SQL非常相近,大多數開發者可以用很短的時間對CQL熟悉起來。(如果你需要幫助,這里有一份CQL入門介紹)
03 高性能
大多數傳統數據庫都采用了主從結構 (primary / secondary architecture),其中只有唯一的一級數據備份可以有讀寫操作,二級數據備份則只能有讀取的操作。這種結構的缺點是高延遲、高成本以及在規模方面的低可用性。
在Cassandra中,並沒有一個節點負責向整個節點集群復制數據,而是每一個節點都可以進行讀寫操作。這一特點增強了數據庫的性能和彈性。
04 隨時隨地在線
由於Cassandra的每一個節點都可以進行讀寫操作,數據可以被快速復制到混合的雲環境,也可以快速分布到不同的地理位置。
如果一個節點出現了故障,用戶會被自動轉到最近一個工作正常的節點。用戶甚至不會注意到有節點出現了問題,因為他們使用的應用即使在這種情況下也能正常運作。
也就是說,應用程序會永遠處於可用狀態,數據也能隨時獲取且不會丟失。
不僅如此,Cassandra內置的修復服務會立刻修復節點故障帶來的數據一致性問題,並不需要人為干預。當有節點出現故障,系統的效率甚至不會受到影響。
05 可拓展性
在傳統的環境中,擴展應用往往是一個耗時耗錢的過程,需要購買更貴的硬件來實現系統的垂直擴展。
Cassandra則只需通過增加節點的方式進行水平擴展即可。例如,使用4個節點可以負荷200,000操作/秒,而增加到8個節點就可以擁有400,000操作/秒的性能。點擊這里查看原文。
06 無縫復制
如今,領頭企業越來越多地采用多數據中心、混合雲甚至是多雲的部署方案,從而可以利用不同部署的優勢並避免被單一供應商的生態系統所限制。
企業要想最大限度地利用多雲環境,則需要底層的雲數據庫提供可延展性、安全性和性能的保障。
所以在意料之中的是,雲數據庫市場預計每年將增長65%,並且在2022年前達到689億美元的市值。

未來展望
Cassandra傳統上被人們認為是一個極為強大的數據庫,可以在絕大多數使用場景中脫穎而出,然而也是比較難學習和操作的數據庫之一。
DataStax致力於與Cassandra社區一起讓Cassandra成為更容易為個人使用、為企業采用和延伸的技術。
- 將提供簡化的開發者接口APIs,包括REST和GraphQL
-
將在CQL中添加更多與SQL類似的功能,包括索引(indexing)、表的合並(Joins)、ACID(Atomicity原子性、Consistency一致性、Isolation隔離性、Durability持久性)及對JSON的完全支持
-
標准的管理接口APIs及正式的、有官方支持的Kubernetes Operator
-
將使存儲引擎變為可插拔的,並同其它接口APIs一起實現數據庫部署和配置的定制化