暂缓迷恋 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


  • xLight

    现在的锤子真多,问题是我找不准钉子

  • http://is.gd/a0g9v/ ideawu

    不少同学确实是言必称NoSQL/KV, 反正啥流行就把啥当神. 关于还是技术和适应业务.

  • http://wzhblog.com WZH

    登陆twitter的时候偶尔都会有technical wrong的提示……
    是我RP不好吗?

  • http://bitkb.appspot.com Kyle

    直接学习了。很好奇twitter怎么做的。

  • http://www.dbthink.com jametong

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

  • http://zhu1.blogspot.com 木匠Charlie

    新概念来了, 适度混合使用, 打出组合拳.

  • http://blog.est.im/ est

    reddit今天也迁移到Cassandra了。reddit的结构要复杂点。
    http://blog.reddit.com/2010/03/she-who-entangles-men.html

  • http://www.dbanotes.net Fenng

    你可真是 reddit 的沉迷用户啊 :)

  • cloudzhou

    最近在看voldemort代码

  • wing

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

  • jacky.chao.wang

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

  • 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.