狠狠撸

狠狠撸Share 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, Net?ix, 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/
顿颈驳驳员工如是说……
               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 @ Twitter
Web Analytics of Twitter
SpiderDuck of Twitter
Rainbird of Twitter
Cassandra @ Net?ix
Cassandra @ Net?ix
为什么Cassandra很酷

? 无中心架构,Column Family数据模型
? 很快,写操作更快
? 性能线性扩展(ref: net?ix, 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
? Net?ix’s benchmark
  ? http://techblog.net?ix.com/2011/11/
    benchmarking-cassandra-scalability-on.html
主要适用场景
? 需要高性能(尤其是写入性能)、随时
 可用、结构化、海量数据的场景

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

?   增加节点

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

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

? Java: Hector, Astyanax by Net?ix
? Scala: Cassie by Twitter
? Python: Pycassa...
? Ruby: cassandra by Twitter
? ...
OpsCenter by DataStax
Priam by Net?ix
? 每个节点上运行的辅助工具,用于:
 ? Backup and recovery (to S3)
 ? Bootstrapping and automated token
    assignment.
 ? Centralized con?guration 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

What's hot (7)

Cassandra
CassandraCassandra
Cassandra
FEG
?
No sql带来了什么 孙立
No sql带来了什么   孙立No sql带来了什么   孙立
No sql带来了什么 孙立
Shaoning Pan
?
贵别别诲服务架构-新浪微博新员工培训议题
贵别别诲服务架构-新浪微博新员工培训议题贵别别诲服务架构-新浪微博新员工培训议题
贵别别诲服务架构-新浪微博新员工培训议题
XiaoJun Hong
?
唯品会大数据实践 Sacc pub
唯品会大数据实践 Sacc pub唯品会大数据实践 Sacc pub
唯品会大数据实践 Sacc pub
Chao Zhu
?
Distributed Data Analytics at Taobao
Distributed Data Analytics at TaobaoDistributed Data Analytics at Taobao
Distributed Data Analytics at Taobao
Min Zhou
?
4 罗成对 docker与数据库的应用结合 罗成对-注解
4 罗成对 docker与数据库的应用结合 罗成对-注解4 罗成对 docker与数据库的应用结合 罗成对-注解
4 罗成对 docker与数据库的应用结合 罗成对-注解
Jiang Shang
?
Cassandra
CassandraCassandra
Cassandra
FEG
?
No sql带来了什么 孙立
No sql带来了什么   孙立No sql带来了什么   孙立
No sql带来了什么 孙立
Shaoning Pan
?
贵别别诲服务架构-新浪微博新员工培训议题
贵别别诲服务架构-新浪微博新员工培训议题贵别别诲服务架构-新浪微博新员工培训议题
贵别别诲服务架构-新浪微博新员工培训议题
XiaoJun Hong
?
唯品会大数据实践 Sacc pub
唯品会大数据实践 Sacc pub唯品会大数据实践 Sacc pub
唯品会大数据实践 Sacc pub
Chao Zhu
?
Distributed Data Analytics at Taobao
Distributed Data Analytics at TaobaoDistributed Data Analytics at Taobao
Distributed Data Analytics at Taobao
Min Zhou
?
4 罗成对 docker与数据库的应用结合 罗成对-注解
4 罗成对 docker与数据库的应用结合 罗成对-注解4 罗成对 docker与数据库的应用结合 罗成对-注解
4 罗成对 docker与数据库的应用结合 罗成对-注解
Jiang Shang
?

Viewers also liked (8)

Rethink of PaaS
Rethink of PaaSRethink of PaaS
Rethink of PaaS
Xu Wang
?
何时浮云散尽(在北邮北邮纪阳老师移动互联网课程上的讲义)
何时浮云散尽(在北邮北邮纪阳老师移动互联网课程上的讲义)何时浮云散尽(在北邮北邮纪阳老师移动互联网课程上的讲义)
何时浮云散尽(在北邮北邮纪阳老师移动互联网课程上的讲义)
Xu Wang
?
Hyper 基于hypervisor的docker引擎.pptx
Hyper 基于hypervisor的docker引擎.pptxHyper 基于hypervisor的docker引擎.pptx
Hyper 基于hypervisor的docker引擎.pptx
Xu Wang
?
窜别谤辞惭蚕介绍
窜别谤辞惭蚕介绍窜别谤辞惭蚕介绍
窜别谤辞惭蚕介绍
Xu Wang
?
Tgtd illustration
Tgtd illustrationTgtd illustration
Tgtd illustration
Xu Wang
?
Fedora Atomic Host
Fedora Atomic Host Fedora Atomic Host
Fedora Atomic Host
rranjithrajaram
?
Hyper: 让Pod以VM为边界
Hyper: 让Pod以VM为边界Hyper: 让Pod以VM为边界
Hyper: 让Pod以VM为边界
Xu Wang
?
Re-Think of Virtualization and Containerization
Re-Think of Virtualization and ContainerizationRe-Think of Virtualization and Containerization
Re-Think of Virtualization and Containerization
Xu Wang
?
Rethink of PaaS
Rethink of PaaSRethink of PaaS
Rethink of PaaS
Xu Wang
?
何时浮云散尽(在北邮北邮纪阳老师移动互联网课程上的讲义)
何时浮云散尽(在北邮北邮纪阳老师移动互联网课程上的讲义)何时浮云散尽(在北邮北邮纪阳老师移动互联网课程上的讲义)
何时浮云散尽(在北邮北邮纪阳老师移动互联网课程上的讲义)
Xu Wang
?
Hyper 基于hypervisor的docker引擎.pptx
Hyper 基于hypervisor的docker引擎.pptxHyper 基于hypervisor的docker引擎.pptx
Hyper 基于hypervisor的docker引擎.pptx
Xu Wang
?
窜别谤辞惭蚕介绍
窜别谤辞惭蚕介绍窜别谤辞惭蚕介绍
窜别谤辞惭蚕介绍
Xu Wang
?
Tgtd illustration
Tgtd illustrationTgtd illustration
Tgtd illustration
Xu Wang
?
Hyper: 让Pod以VM为边界
Hyper: 让Pod以VM为边界Hyper: 让Pod以VM为边界
Hyper: 让Pod以VM为边界
Xu Wang
?
Re-Think of Virtualization and Containerization
Re-Think of Virtualization and ContainerizationRe-Think of Virtualization and Containerization
Re-Think of Virtualization and Containerization
Xu Wang
?

Similar to Cassandra Technical and history overview (7)

颁补蝉蝉补苍诲谤补的初步使用及一些简单的操作
颁补蝉蝉补苍诲谤补的初步使用及一些简单的操作颁补蝉蝉补苍诲谤补的初步使用及一些简单的操作
颁补蝉蝉补苍诲谤补的初步使用及一些简单的操作
zhubin885
?
颁补蝉蝉补苍诲谤补介绍.辫辫迟
颁补蝉蝉补苍诲谤补介绍.辫辫迟颁补蝉蝉补苍诲谤补介绍.辫辫迟
颁补蝉蝉补苍诲谤补介绍.辫辫迟
james tong
?
颁补蝉蝉补苍诲谤补架构与应用
颁补蝉蝉补苍诲谤补架构与应用颁补蝉蝉补苍诲谤补架构与应用
颁补蝉蝉补苍诲谤补架构与应用
zhangzhaokun
?
颁补蝉蝉补苍诲谤补运维之道(辞蹿蹿颈肠别2003)
颁补蝉蝉补苍诲谤补运维之道(辞蹿蹿颈肠别2003)颁补蝉蝉补苍诲谤补运维之道(辞蹿蹿颈肠别2003)
颁补蝉蝉补苍诲谤补运维之道(辞蹿蹿颈肠别2003)
haiyuan ning
?
颁补蝉蝉补苍诲谤补架构与应用
颁补蝉蝉补苍诲谤补架构与应用颁补蝉蝉补苍诲谤补架构与应用
颁补蝉蝉补苍诲谤补架构与应用
lsdyg
?
Mysql HandleSocket技术在SNS Feed存储中的应用
Mysql HandleSocket技术在SNS Feed存储中的应用Mysql HandleSocket技术在SNS Feed存储中的应用
Mysql HandleSocket技术在SNS Feed存储中的应用
iammutex
?
大规模网站架构
大规模网站架构大规模网站架构
大规模网站架构
drewz lin
?
颁补蝉蝉补苍诲谤补的初步使用及一些简单的操作
颁补蝉蝉补苍诲谤补的初步使用及一些简单的操作颁补蝉蝉补苍诲谤补的初步使用及一些简单的操作
颁补蝉蝉补苍诲谤补的初步使用及一些简单的操作
zhubin885
?
颁补蝉蝉补苍诲谤补介绍.辫辫迟
颁补蝉蝉补苍诲谤补介绍.辫辫迟颁补蝉蝉补苍诲谤补介绍.辫辫迟
颁补蝉蝉补苍诲谤补介绍.辫辫迟
james tong
?
颁补蝉蝉补苍诲谤补架构与应用
颁补蝉蝉补苍诲谤补架构与应用颁补蝉蝉补苍诲谤补架构与应用
颁补蝉蝉补苍诲谤补架构与应用
zhangzhaokun
?
颁补蝉蝉补苍诲谤补运维之道(辞蹿蹿颈肠别2003)
颁补蝉蝉补苍诲谤补运维之道(辞蹿蹿颈肠别2003)颁补蝉蝉补苍诲谤补运维之道(辞蹿蹿颈肠别2003)
颁补蝉蝉补苍诲谤补运维之道(辞蹿蹿颈肠别2003)
haiyuan ning
?
颁补蝉蝉补苍诲谤补架构与应用
颁补蝉蝉补苍诲谤补架构与应用颁补蝉蝉补苍诲谤补架构与应用
颁补蝉蝉补苍诲谤补架构与应用
lsdyg
?
Mysql HandleSocket技术在SNS Feed存储中的应用
Mysql HandleSocket技术在SNS Feed存储中的应用Mysql HandleSocket技术在SNS Feed存储中的应用
Mysql HandleSocket技术在SNS Feed存储中的应用
iammutex
?
大规模网站架构
大规模网站架构大规模网站架构
大规模网站架构
drewz lin
?

Cassandra Technical and history overview