暂缓迷恋 Cassandra

| 12 Comments

最近 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 Comments

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

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

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

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

就是有很多架构师,,紧跟新的架构趋势, 而不考虑自己的应用到底适合哪种类型的架构..

总是嫌架构太土,,架构太老,,要紧跟xxxx的架构,,xxx的架构现在解决了多少问题,,听到这些我就有点慌..

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

reddit今天也迁移到Cassandra了。reddit的结构要复杂点。

http://blog.reddit.com/2010/03/she-who-entangles-men.html

最近在看voldemort代码

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

据可靠消息,其实Cassandra在FB内部已经不太用了。

有一句话很同意:如果应用场景不合适,那么永远都只是个传说。

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.