木匠的微型博客 Charlie Twitter

    follow me on Twitter

    Monday, March 19, 2012

    Cassandra in Twitter.com C*摆脱颓势,一路高歌猛进

    此帖来源于Facebook的一篇技术介绍. 童兄高喊一句口号作为留言: HBase Rocks,Cassandra Sucks.

    鄙人觉得有点误导. 随写出以下文字,提供更多及时信息,供各位参考.
    HBase和Cassandra都是传承BigTable的Column Family数据模式; 本是同根生,相煎何太急.

    Polyglot persistence(NoSQL),顾名思义,就是因为通吃的关系数据库在解决某些特定场景问题的时候,露怯,暴露了局限性,才诞生了各种NoSQL产品, 能够处理种种特殊场景的简单问题,见缝插针,弥补了关系数据库的不足之处, 友好共生, 在未来的数十年里.

    因此, Polyglot persistence(NoSQL)不会一家独大,一统天下. 每个产品都是天生处理某个特定问题的. 现实世界的问题种类很多.
    Polyglot persistence各个数据库之间的差异非常大,大类就有四类. 作为数据库架构师和软件架构师,一个重要的责任就是在项目开始之前,做出正确的选择, 选择出能够解决特定使用场景的数据库产品. http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis

    HBase是好,与Hadoop结合紧密,解决了Name Node的单点失效问题,范围分区会自动分裂.
    Facebook选择HBase的另一个重要原因是他们已经拥有了HBase的技能和知识库,减少了学习时间.
    HBase的稳定性和易用性还是略逊于Cassandra. 

    Cassandra 1.1 支持的数据模型特性有:

    Column slicing,
    Composite Key/Index,
    Counter column,
    2nd index,
    Reversed Comparator,
    TTL Expiring column,
    Compression SSTable,
    LevelDB SSTable compaction
    ...


    先不说 以Netflix,Rackspace,Reddit,Cisco,Digg 为龙头的广泛的Cassandra用户群. 我们就单单看一下Twitter公司的后台数据库.

    Scala Client for Cassandra From Twitter: Cassie. a dozen clusters and over a thousand Cassandra machines. 对,是上千台Cassandra节点.
    http://nosql.mypopescu.com/post/18975506356/scala-client-for-cassandra-from-twitter-cassie

    Rainbird: Twitter’s ZooKeeper + Cassandra Based Realtime Analytics Solution http://nosql.mypopescu.com/post/3134031732/rainbird-twitters-zookeeper-cassandra-based

    SpiderDuck: Twitter's Real-time URL Fetcher, 渗透进了核心实时应用. NOVEMBER 14, 2011. 
    http://engineering.twitter.com/2011/11/spiderduck-twitters-real-time-url.html

    Cassandra-based distributed hash table that stores page metadata and resolution information keyed by URL, as well as fetch status for every URL recently encountered by the system. This store serves clients across Twitter that need real-time access to URL metadata.

    看看我们漫长的对话时间表.  :)





  • January 27
    Charlie Zhu
    • Why HBase Rocks,Cassandra Sucks ?

  • March 15
    James Tong
    • facebook use hbase,and twitter turning down cassandra,

  • 4 minutes ago
    Charlie Zhu
  • 最后,以High Scalability的Facebook项目分析的博客总结,作为结尾. MARCH 22, 2011.
    这篇文章也过时. NoSQL时代,新产品和功能特性发布的太快, 信息披星戴月,淘汰的太快. 

    "Facebook is focussing on the HBase, Hadoop, HDFS ecosystem and counting on the operational quirks to be ironed out later. Others choose Cassandra because they love it's scalability, multi-datacenter functionality, and ease of operational use" 加上Realtime Analytics. " 

    附录, 
    1) 在下是作为跑龙套的,一起翻译TOP(Troubleshooting Oracle Performance)的时候, 结识了James Tong兄. 鄙人翻译的是第四章的草稿, Object Statistics. 
    2) 鄙人现在主攻Cassandra和Redis, 欢迎提问和交流. 

    木匠 - 公元2012年 三月十九日.