Cassandra真的准备好了吗?是否适合大型项目的生产环境?

时间:2010-12-29 14:20:19

标签: sql database database-design nosql cassandra

NoSQL数据库&特别是Cassandra以更低的成本为他们的高可扩展性承诺创造了很多嗡嗡声。

关于Cassandr被facebook,twitter,digg等社交网络专业人士采用,有很多嗡嗡声。但事实上,fb在最近的项目中不再考虑Cassandra,而且Facebook从未完全依赖于cassandra放弃mysql,尽管它仍然在与mySQL苦苦挣扎,其中Cassandra可能非常适合他们的模型。

Even twitter stepped back from its plans to move to Cassandra cluster

此外,Digg在Cassandra实施方面并不是很成功(但不清楚是谁应该受到指责)。

有了这个没有大玩家可以自豪地和Cassandra一起玩...... !!

它仍处于 alpha阶段小社区,那么Cassandra应该考虑用于大型项目的生产环境吗?对于社交网站,MySQL和MySQL之间的数据库解决方案。 Cassandra将是:

  1. 更容易构建,维护和管理
  2. 提供良好的表现
  3. 更便宜的解决方案
  4. 未来证明(在可扩展性,可靠性等方面)
  5. 需要较少的人工管理。
  6. 在上述所有内容中,我主要怀疑它的可靠性......我是不是冒险使用Cassandra !! ???

    你能给出的任何其他建议吗?

1 个答案:

答案 0 :(得分:7)

编辑,2017年11月:请注意原始答案是在2010年写的.Cassandra现在已成为领先的NoSQL数据存储之一。它是可靠的,成熟的,并得到Datastax的良好支持。它发生了重大变化。超级列已经消失,二级索引进入,使用JNI进行了大量改进,它现在具有类似SQL的查询语言,并且可以与Spark和Hadoop等分布式计算工具很好地集成。随着时间的推移,也有其他选择结帐ScyllaDB。


不确定我是否能说服你。但是,我正在开发一个使用Cassandra的项目。 Cassandra不是完整的解决方案,但速度非常快,对于分组信息非常有用。

我们已经将所有密集的读写数据加载到Cassandra,并且需要较少且需要关系完整性的数据仍然在MySQL中(其中有MemcacheD)。而且,我猜Facebook也必须拥有MySQL,Cassandra,MemcacheD的混合体。至少这是我猜的。

回答你的问题(根据我对Cassandra和MySQL的简短经验)

  1. MySQL是传统的,您可以轻松地构建它。需要同化Cassandra(或任何新的NoSQL方法),有时你会发现术语冲突。所以,MySQL在这里获胜。
  2. 表现明智的卡桑德拉获胜。 (读写性能)
  3. 如果你在谈论硬件,我不确定。但我猜,硬件方面,一个MySQL主机+四个从机与4个Cassandra节点相同。但老实说,我不知道。
  4. Scalabity:Cassandra,可靠性:MySQL。如果您阅读Cassandra文档,它说它最终是一致的。但我还没有测试过Cassandra的可靠性。顺便说一句,通过在可靠性下指出“最终的一致性”,我并不是说它是不可行的。我的意思是,在任何给定时间,您可能不确定节点是否是最新的并且具有所有更新。
  5. 有许多用于数据库管理和更改的自动化工具。但对于卡桑德拉来说,并没有那么多。所以,MySQL在这里获胜。但我想,Cassandra的工具很快就会推出。
  6. 我们刚刚开始使用Cassandra,我希望有人可以指出,如果他们找不到任何正确的东西。如有必要,我很乐意重新测试和纠正。


    当我开始时我没有找到太多文档,但现在看起来像Apache Cassandra页面上列出了不少文章。参阅: