SlideShare una empresa de Scribd logo
1 de 41
Descargar para leer sin conexión
站在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
 谢谢

Más contenido relacionado

La actualidad más candente

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

La actualidad más candente (7)

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

Destacado

Rethink of PaaS
Rethink of PaaSRethink of PaaS
Rethink of PaaSXu Wang
 
何时浮云散尽(在北邮北邮纪阳老师移动互联网课程上的讲义)
何时浮云散尽(在北邮北邮纪阳老师移动互联网课程上的讲义)何时浮云散尽(在北邮北邮纪阳老师移动互联网课程上的讲义)
何时浮云散尽(在北邮北邮纪阳老师移动互联网课程上的讲义)Xu Wang
 
Hyper 基于hypervisor的docker引擎.pptx
Hyper 基于hypervisor的docker引擎.pptxHyper 基于hypervisor的docker引擎.pptx
Hyper 基于hypervisor的docker引擎.pptxXu Wang
 
ZeroMQ简介
ZeroMQ简介ZeroMQ简介
ZeroMQ简介Xu Wang
 
Tgtd illustration
Tgtd illustrationTgtd illustration
Tgtd illustrationXu 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 ContainerizationXu Wang
 

Destacado (8)

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

Similar a Cassandra Technical and history overview

分布式Key Value Store漫谈
分布式Key Value Store漫谈分布式Key Value Store漫谈
分布式Key Value Store漫谈Tim Y
 
分布式Key-value漫谈
分布式Key-value漫谈分布式Key-value漫谈
分布式Key-value漫谈lovingprince58
 
redis 适用场景与实现
redis 适用场景与实现redis 适用场景与实现
redis 适用场景与实现iammutex
 
Exadata那点事
Exadata那点事Exadata那点事
Exadata那点事freezr
 
大规模网站架构
大规模网站架构大规模网站架构
大规模网站架构drewz lin
 
Comment System of 56.com
Comment System of 56.comComment System of 56.com
Comment System of 56.comHo Kim
 
数据库高可用架构
数据库高可用架构数据库高可用架构
数据库高可用架构freezr
 
架構設計-資料存取的選擇
架構設計-資料存取的選擇架構設計-資料存取的選擇
架構設計-資料存取的選擇國昭 張
 
大型网站架构的发展
大型网站架构的发展大型网站架构的发展
大型网站架构的发展drewz lin
 
大型网站架构的发展
大型网站架构的发展大型网站架构的发展
大型网站架构的发展Hesey
 
浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华zhuozhe
 
设计高性能mysql应用-TechClub技术沙龙
设计高性能mysql应用-TechClub技术沙龙设计高性能mysql应用-TechClub技术沙龙
设计高性能mysql应用-TechClub技术沙龙banping
 
亚马逊云计算Aws
亚马逊云计算Aws亚马逊云计算Aws
亚马逊云计算Aws锐 张
 
Introduction to big data
Introduction to big dataIntroduction to big data
Introduction to big data邦宇 叶
 
Mesos-based Data Infrastructure @ Douban
Mesos-based Data Infrastructure @ DoubanMesos-based Data Infrastructure @ Douban
Mesos-based Data Infrastructure @ DoubanZhong Bo Tian
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合Qiangning Hong
 

Similar a Cassandra Technical and history overview (20)

分布式Key Value Store漫谈
分布式Key Value Store漫谈分布式Key Value Store漫谈
分布式Key Value Store漫谈
 
分布式Key-value漫谈
分布式Key-value漫谈分布式Key-value漫谈
分布式Key-value漫谈
 
redis 适用场景与实现
redis 适用场景与实现redis 适用场景与实现
redis 适用场景与实现
 
Exadata那点事
Exadata那点事Exadata那点事
Exadata那点事
 
Databases on AWS
Databases on AWSDatabases on AWS
Databases on AWS
 
大规模网站架构
大规模网站架构大规模网站架构
大规模网站架构
 
No sql
No sqlNo sql
No sql
 
Comment System of 56.com
Comment System of 56.comComment System of 56.com
Comment System of 56.com
 
数据库高可用架构
数据库高可用架构数据库高可用架构
数据库高可用架构
 
架構設計-資料存取的選擇
架構設計-資料存取的選擇架構設計-資料存取的選擇
架構設計-資料存取的選擇
 
mercury
mercurymercury
mercury
 
大型网站架构的发展
大型网站架构的发展大型网站架构的发展
大型网站架构的发展
 
大型网站架构的发展
大型网站架构的发展大型网站架构的发展
大型网站架构的发展
 
浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华
 
设计高性能mysql应用-TechClub技术沙龙
设计高性能mysql应用-TechClub技术沙龙设计高性能mysql应用-TechClub技术沙龙
设计高性能mysql应用-TechClub技术沙龙
 
亚马逊云计算Aws
亚马逊云计算Aws亚马逊云计算Aws
亚马逊云计算Aws
 
Mesos intro
Mesos introMesos intro
Mesos intro
 
Introduction to big data
Introduction to big dataIntroduction to big data
Introduction to big data
 
Mesos-based Data Infrastructure @ Douban
Mesos-based Data Infrastructure @ DoubanMesos-based Data Infrastructure @ Douban
Mesos-based Data Infrastructure @ Douban
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合
 

Cassandra Technical and history overview