Apache基金会副总裁Matthieu Riou近日在邮件列表中宣布,开源分布式数据存储系统Cassandra日前正式成为Apache顶级项目。
Cassandra最初由Facebook开发,以Amazon专有的完全分布式的Dynamo为基础,结合了Google BigTable基于列族(Column Family)的数据模型。很多方面都可以称之为Dynamo 2.0。
2008年开源,转而由Amazon Dynamite团队成员维护。后成为Apache基金会旗下的一个重要孵化项目。虽然目前仍然在密集开发阶段,但是已经有了许多产品级的应用,包括知名云计算公司RackSpace,著名的新闻聚合网站Digg等等。当然还值得一提的是Twitter。
下面的介绍引用自JavaEye范凯的博客:
Cassandra的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra的一个写操作,会被复制到其他节点上去,对Cassandra的读操作,也会被路由到某个节点上面去读取。对于一个Cassandra群集来说,扩展性能是比较简单的事情,只管在群集里面添加节点就可以了。我看到有文章说Facebook的Cassandra群集有超过100台服务器构成的数据库群集。
Cassandra也支持比较丰富的数据结构和功能强大的查询语言,和MongoDB比较类似,查询功能比MongoDB稍弱一些,twitter的平台架构部门领导Evan Weaver写了一篇文章介绍Cassandra:http://blog.evanweaver.com/articles/2009/07/06/up-and-running-with-cassandra/,有非常详细的介绍。
Cassandra以单个节点来衡量,其节点的并发读写性能不是特别好,有文章说评测下来Cassandra每秒大约不到1万次读写请求,我也看到一些对这个问题进行质疑的评论,但是评价Cassandra单个节点的性能是没有意义的,真实的分布式数据库访问系统必然是n多个节点构成的系统,其并发性能取决于整个系统的节点数量,路由效率,而不仅仅是单节点的并发负载能力。