SlideShare a Scribd company logo
站在Digg的尸体上
谈谈Cassandra
  盛大云计算 王旭
About Me
• 码农 @ 盛大云计算 / 云硬盘 (EBS)
• 前Hadoop Developer
• 技术作者、译者《Cassandra权威指南》
  (据说像机器翻译的)

• http://wangxu.me/blog/
• @gnawux
大纲

• Cassandra的成长历程
• Cassandra的主要特性
• Cassandra的相关工具
• Cassandra的核心技术
Cassandra是谁

• 希腊神话中的特洛伊公主
• 太阳神阿波罗的爱慕与赠予
• 悲剧的女先知
• ……
我们谈的Cassandra
•   无中心的、高性能、可扩展的、分布式非关系型数据库

•   出身名门:
    •   Facebook开源的NoSQL数据库
•   万千宠爱:

    •   Twitter, Digg, Rackspace...
•   飞来横祸
    •   Twitter, Digg, Facebook
•   涅槃重生
    •   Twitter, Netflix, Rackspace, Reddit
John Quinn




Digg的故事
Digg的未来




http://about.digg.com/blog/looking-future-cassandra/
⼀一年后……
    http://techcrunch.com/2010/09/07   /
    digg-struggles-vp-engineering-door/
Digg员工如是说……
               http://www.quora.com/Is-Cassandra-to-blame-
               for-Digg-v4s-technical-failures




  但究竟Digg的Cassandra
   遇到了什么问题?
Twitter in 2010
              FRIDAY, JULY 9, 2010
Facebook in 2010
为什么Cassandra不靠谱
• Repair: 数据修复的可靠性
  (CASSANDRA-1316)
• Scale: 插入节点对集群的影响/负载均衡
  (CASSANDRA-192)
• Compaction: 对性能的影响
• Memory (Key cache, OOM...)
• Mature....
今日Cassandra
Cassandra @ Twitter
Web Analytics of Twitter
SpiderDuck of Twitter
Rainbird of Twitter
Cassandra @ Netflix
Cassandra @ Netflix
为什么Cassandra很酷

• 无中心架构,Column Family数据模型
• 很快,写操作更快
• 性能线性扩展(ref: netflix, ycsb...)
• Counter数据类型
Gartner的成熟度曲线




Gartner的技术成熟度模型:技术萌芽期、过热期、幻觉破灭谷底
            区、复苏区、生产力成熟期
主要特性
关于NoSQL

• NoSQL Databases and Polyglot Persistence
  (多模式/混合式的持久化)

• NoSQL and BigData
• NoSQL and Not Only SQL
多种数据模型

• Key-Value
• Graph
• Document (JSON...)
• Column Family, 多维哈希表, 稀疏表
Column Family
•   类比RDBMS中的表
•   存储⼀一系列的列

    •   每个列是⼀一个三元组(名:值:时间戳)
    •   不同的行的列不必相同
•   列是有序的(有索引的)

    •   可以取出⼀一列,或进行区间查询
    •   常用场景:时间线、不同属性……

•   Super Column Family, Composite Column
CAP原则




⼀一致性、可用性与分区耐受性,三者只能取其二
Cassandra的可调⼀一致性
•   数据存取API可以指定需要的⼀一致性
    •   CL.ZERO
    •   CL.ANY
    •   CL.ONE
    •   CL.QUORUM
    •   CL.ALL
•   W+R>N 意味着强⼀一致性
操作接口

• Cassandra API
 • Thrift API
 • Clients: Hector, PYCASSA...
• CQL
Benchmarks
• YCSB
  • http://nosql.mypopescu.com/post/
    3163240962/ycsb-benchmark-results-for-
    cassandra-hbase-mongodb
• Netflix’s benchmark
  • http://techblog.netflix.com/2011/11/
    benchmarking-cassandra-scalability-on.html
主要适用场景
• 需要高性能(尤其是写入性能)、随时
 可用、结构化、海量数据的场景

• 时间线
• 消息
• 广告跟踪
• ……
日常运维
•   Node repair
    •   gc_grace_seconds
    •   避免多节点同时repair

•   增加节点

    •   划分token range, 指定seed node
    •   均衡数据

    •   ⼀一种策略:成倍增加节点
相关工具
各种客户端

• Java: Hector, Astyanax by Netflix
• Scala: Cassie by Twitter
• Python: Pycassa...
• Ruby: cassandra by Twitter
• ...
OpsCenter by DataStax
Priam by Netflix
• 每个节点上运行的辅助工具,用于:
 • Backup and recovery (to S3)
 • Bootstrapping and automated token
    assignment.
 • Centralized configuration management
 • RESTful monitoring and metrics
核心技术
DHT

• Dynamo by Amazon
• 结构化P2P, ⼀一致性哈希
• Gossip
• 读时修复
• Anti-Entropy, Merkle Tree
写入路径

• Commit Log
• MemTable
• SSTable
Bloom Filter

• Bloom Filter vs. Hash
• 出发点:磁盘访问是代价高昂的
• 假阳性
参考

• 官方主页: http://cassandra.apache.org/
• Datastax: http://www.datastax.com/
• 《Cassandra权威指南》: http://
  www.ituring.com.cn/book/9
Q &A
 谢谢

More Related Content

PDF
漫画背后的故事
KEY
Redis
PDF
Big Data, NoSQL, and MongoDB
PPTX
Oceanbase-淘宝云存储实践
PPTX
淘宝Ocean base云存储实践 2011架构师大会
PPTX
NoSQL-MongoDB
PDF
新浪微博Feed服务架构
PDF
曲琳 购物搜索引擎架构的变与不变——一淘网搜索技术分享0731
漫画背后的故事
Redis
Big Data, NoSQL, and MongoDB
Oceanbase-淘宝云存储实践
淘宝Ocean base云存储实践 2011架构师大会
NoSQL-MongoDB
新浪微博Feed服务架构
曲琳 购物搜索引擎架构的变与不变——一淘网搜索技术分享0731

What's hot (7)

PDF
Cassandra
 
PPTX
No sql带来了什么 孙立
PPTX
Feed服务架构-新浪微博新员工培训议题
PDF
唯品会大数据实践 Sacc pub
PDF
Distributed Data Analytics at Taobao
PPTX
4 罗成对 docker与数据库的应用结合 罗成对-注解
PDF
Hantuo openstack
Cassandra
 
No sql带来了什么 孙立
Feed服务架构-新浪微博新员工培训议题
唯品会大数据实践 Sacc pub
Distributed Data Analytics at Taobao
4 罗成对 docker与数据库的应用结合 罗成对-注解
Hantuo openstack
Ad

Viewers also liked (8)

PDF
Rethink of PaaS
PDF
何时浮云散尽(在北邮北邮纪阳老师移动互联网课程上的讲义)
PDF
Hyper 基于hypervisor的docker引擎.pptx
KEY
ZeroMQ简介
PDF
Tgtd illustration
PDF
Fedora Atomic Host
PDF
Hyper: 让Pod以VM为边界
PDF
Re-Think of Virtualization and Containerization
Rethink of PaaS
何时浮云散尽(在北邮北邮纪阳老师移动互联网课程上的讲义)
Hyper 基于hypervisor的docker引擎.pptx
ZeroMQ简介
Tgtd illustration
Fedora Atomic Host
Hyper: 让Pod以VM为边界
Re-Think of Virtualization and Containerization
Ad

Similar to Cassandra Technical and history overview (7)

DOC
Cassandra的初步使用及一些简单的操作
PPT
Cassandra简介.ppt
PPTX
Cassandra架构与应用
PPT
Cassandra运维之道(office2003)
PPTX
Cassandra架构与应用
PDF
Mysql HandleSocket技术在SNS Feed存储中的应用
PPT
大规模网站架构
Cassandra的初步使用及一些简单的操作
Cassandra简介.ppt
Cassandra架构与应用
Cassandra运维之道(office2003)
Cassandra架构与应用
Mysql HandleSocket技术在SNS Feed存储中的应用
大规模网站架构

Cassandra Technical and history overview