暂缓迷恋 Cassandra

最近 Twitter 和 Digg 的技术团队都放出话来说要从 Mysql + Memcached 的组合迁移到 Cassandra 环境(Refer 12),这些消息又会让不少人跃跃欲试,恨不得也把自家网站迁移到 Cassandra 下面过把瘾,我相信有些公司的团队又要言必称 Cassandra 了。

Twitter 和 Digg 对数据存储引擎的需求相当独特:写操作密集,基本无修改需求,读操作则多数是分散多次读取汇总展示(想象一下你 Twitter页面上同时显示好友们的 Tweet 内容)。对 MySQL 来说,Sharding 后几乎是被当作简单的存储引擎来用的,即使是加上 Memcached ,对数据读取开销相当大(Refer),因为这时候即使是最合理用索引,I/O开销也不是最优的–走的是索引范围扫描嘛。Cassandra 则相当于预存了计算结果,这要得益于其 Flexible schema 特性,按照既定规则写入,读取直接取预排序的范围键值结果(这其实是偏 OLAP 的应用,而非 OLTP)。

Twitter 和 Digg 这两家网站的数据结构其实并不复杂,尤其是 Twitter ,相当的简约(当然并不简单)。或许有人说,把 Cassandra 开源的 Facebook 不也在用呢吗 ? Facebook 数据结构不复杂么?没错,Facebook 数据结构很复杂,不过使用 Cassandra 的场景其实和 Twitter / Digg 几乎一致的—只是用在 inbox 这个地方的数据处理而已。

不要迷恋 Cassandra ,如果应用场景不合适,那么对你来说永远都只是个传说。。

EOF


12 thoughts on “暂缓迷恋 Cassandra

  1. jametong

    就是有很多架构师,,紧跟新的架构趋势, 而不考虑自己的应用到底适合哪种类型的架构..
    总是嫌架构太土,,架构太老,,要紧跟xxxx的架构,,xxx的架构现在解决了多少问题,,听到这些我就有点慌..

    Reply
  2. wing

    在尝试使用Cassandra做企业黄页,至少在32位OS上不会像mongodb那样有数据量限制呵.

    Reply
  3. jacky.chao.wang

    据可靠消息,其实Cassandra在FB内部已经不太用了。
    有一句话很同意:如果应用场景不合适,那么永远都只是个传说。

    Reply
  4. jacky.chao.wang

    It’s strange that I can’t submit Chinese comments – the system reminds me saying it can’t support wide-chars… =_=
    Well, even in FB, Cassandra is no longer popular. The guys used working on that have shifted to other projects.
    And, I totally agree and just want to echo David’s words: the key factors are business logic and scenario. Without these, the pure technology is just a legend.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *