为什么会诞生 Apache Cassandra
2007 年 Facebook 为了解决消息收件箱搜索问题( Inbox Search problem)而开始设计 Cassandra 项目。当时 Facebook 遇到了传统的方法难以解决的超大数据量存储可扩展性问题。具体来说,项目团队需要处理大量的消息副本、消息的反向索引等不同形式的数据,需要处理很多随机读和并发随机写操作。
该团队由 Jeff Hammerbacher 领导,核心工程师包括 Avinash Lakshman,Karthik Ranganathan 和搜索团队的 Prashant Malik 。2008年7月 Cassandra 的代码被作为开源项目发布到 Google Code。虽然代码在2008年作为 Google Code 的一个项目,但是这段时间基本上只有 Facebook 工程师来更新代码,基本上没有形成社区。所以在2009年3月,Cassandra 被转移到 Apache 孵化器项目,并在2010年2月17日,它被投票成为一个顶级项目。在 Apache Cassandra Wiki 上,您可以找到 committers 列表,其中许多人自 2010/2011 年以来就一直参与该项目。committers 主要来自 Twitter,LinkedIn,Apple,其中还包括了许多独立开发者。
Cassandra 的设计很大程度受 Amazon Dynamo 的影响,具体可参见《Dynamo: Amazon's Highly Available Key-value Store》。2010年由 Facebook 的 Lakshman 和 Malik 在 ACM 首次发表了 Cassandra 的论文 《Cassandra: a decentralized structured storage system》,向全世界介绍了 Cassandra。
随着商界对 Cassandra 的兴趣增加,对 Cassandra 的生产支持变得越来越明显。2010年4月 Cassandra 的 Apache 项目主席 Jonathan Ellis 和其同事 Matt Pfeil 成立了一家名为 DataStax 公司(最初名为 Riptano)。DataStax 雇佣了多名 Cassandra Committer,为 Cassandra 项目提供了相关支持,并引领其发展。