狠狠撸

狠狠撸Share a Scribd company logo
基亍惭测厂蚕尝的分布式实践


              杨海朝
   Senior MySQL DBA@SINA
     jackbillow@gmail.com


       DTCC 2011
          2011.4.15
业务增长




       usage
议题

? Sharding策略
? Cache应用
? NoSQL应用
? 多IDC部署
Database Sharding

what drives the need for database sharding?




         http://www.codefutures.com/database-sharding/
Database Sharding

what is database sharding?




           http://www.codefutures.com/database-sharding/
前期

? 一开始就考虑CAP & BASE理论
? 异步所有能异步的操作
? 避免分布式事务
前期

按功能分割:
? 不同的业务不同的DB
? Master/Slaves
? MPSM
? 多个DB一个port
前期

水平切分:
? 索引和数据在不同的DB
? Table 辫补谤迟颈迟颈辞苍颈苍驳(256张迟补产濒别蝉)
Scaling实践#1

? SPSM
? 提高slave数量
Scaling实践#2

? 索引和数据物理分开
? 一个DB一个端口
Scaling实践#3

提高单机的性能:
? SSD
? IODrive
? Cachecade
? Flashcache
Scaling实践#4.1

Master不拆分Slave分成多组
Scaling实践#4.2

以表对象进行拆分
Scaling实践#4.3

按不同partitioning key进行拆分
Scaling实践#5

时间维度来分,持续归档
Scaling实践#6

中间件来减少开发和运维的成本
Sharding原则

? 一开始就关注架构设计
? Scale-up ? Scale-out ? Scale-up
? 成本可控下硬件是首选
? 逐步解决拆分中成本问题
挑战

? 如何减少TCO?
? 如何权衡业务后期的功能扩展?
? 故障率如何降低?
? 大批量的快速部署?
Caching




Everything runs from memory in Web 2.0
 --Evan Weaver
Caching

? Delay is the fault
  --Me


DB的延时越来越不可以接受,进行了并发
 复制的开发,降低响应时间还是没有解决
Caching

第一阶段: MySQL + Memcached
                  Memcache
                   Server




  Client




                  Database
Caching

第二阶段: MySQL + UDF
Caching

第三阶段: 按冷热度分层




http://natishalom.typepad.com/nati_shaloms_blog/2010/10/nocap.html
Caching原则

? 采用一致性Hash部署
? Cache按照冷热分层
? 所有热数据都放入Cache
? 双写来避免雪崩问题
? 队列方式持久化落入MySQL
挑战

? 双写导致应用复杂?
? 实现locality RAM?
? 多IDC部署Cache的复杂度问题?
NoSQL

? No use only MySQL
? 高性能
? 丰富的数据类型
NoSQL

独立redis:
? 关系
? 计数
? 通知
……
NoSQL

MySQL ? Redis复制
? 通过RBR解析BINLOG同步到redis
? Redis提供特定数据结构的读访问
? 实现关系型数据转变成队列数据
NoSQL

Redis ? MySQL复制
? Redis提供特定数据结构的读写
? 通过replication接口同时写入到MySQL
NoSQL

对redis进行完善
? 解决replicaton问题(rdb+aof)
? 容灾问题(加入position思想)
挑战

? 如何批量管理?
? 后期容量扩展?
? 复杂数据的濒辞补诲速度问题?
多IDC部署

Federated table
多IDC部署

Master/Master
多IDC部署

开发多主复制
多IDC部署

Pub/sub + MySQL replication




    http://www.codeproject.com/KB/WCF/ASENS.aspx?msg=2937455
挑战

? 延时带来的应用时序问题?
? 部署datacenter的数量有限?
总结

? 持续的database sharding
? 硬件解决是首选
? 数据库简化为存储
? 关系型和非关系结合
? 谨慎考虑多机房部署
Thank you for coming!
    @jackbillow
jackbillow@gmail.com
       Q&A
长期招聘,欢迎加入!
Ad

Recommended

000000_Manual Guía POES.pdf
RafaelLeonRuiz
?
数据库厂丑补谤诲颈苍驳专题
数据库厂丑补谤诲颈苍驳专题
清平 张
?
大型电商的数据服务的要点和难点
大型电商的数据服务的要点和难点
Chao Zhu
?
Modern Database Development Oow2008 Lucas Jellema
Modern Database Development Oow2008 Lucas Jellema
Lucas Jellema
?
Chap02: The database Development process
Chap02: The database Development process
ahmed naveed
?
唯品会大数据实践 Sacc pub
唯品会大数据实践 Sacc pub
Chao Zhu
?
豆瓣数据架构实践
豆瓣数据架构实践
Xupeng Yun
?
惭测厂蚕尝数据库设计、优化
惭测厂蚕尝数据库设计、优化
Jinrong Ye
?
基于My sql的分布式数据库实践 公开
基于My sql的分布式数据库实践 公开
YANGL *
?
大规模网站架构
大规模网站架构
drewz lin
?
Dreaming Infrastructure
Dreaming Infrastructure
kyhpudding
?
数据库高可用架构
数据库高可用架构
freezr
?
狈辞蝉辩濒叁步曲
狈辞蝉辩濒叁步曲
84zhu
?
大型网站架构的发展
大型网站架构的发展
drewz lin
?
大型网站架构的发展
大型网站架构的发展
Hesey
?
1到100000000 - 分布式大型网站的架构设计
1到100000000 - 分布式大型网站的架构设计
RolfZhang
?
数据库系统设计漫谈
数据库系统设计漫谈
james tong
?
基于惭测厂蚕尝可扩展架构设计
基于惭测厂蚕尝可扩展架构设计
jackbillow
?
浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华
zhuozhe
?
基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构
Sky Jian
?
海量日志分析系统实践,顿产补
海量日志分析系统实践,顿产补
Cevin Cheung
?
豆瓣网技术架构变迁
豆瓣网技术架构变迁
reinhardx
?
基于惭测厂蚕尝开放复制协议的同步扩展
基于惭测厂蚕尝开放复制协议的同步扩展
Sky Jian
?
大规模数据库存储方案
大规模数据库存储方案
XiaoJun Hong
?
3.架构设计篇2
3.架构设计篇2
gavin shaw
?
Bdwf11 netezza james_zheng
Bdwf11 netezza james_zheng
bigdatawf
?
大型互联网应用架构设计
大型互联网应用架构设计
thinkinlamp
?
高可用可扩展数据层 - MySQL架构实践
高可用可扩展数据层 - MySQL架构实践
Sky Jian
?

More Related Content

Similar to 基于惭测厂蚕尝的分布式数据库实践 (20)

基于My sql的分布式数据库实践 公开
基于My sql的分布式数据库实践 公开
YANGL *
?
大规模网站架构
大规模网站架构
drewz lin
?
Dreaming Infrastructure
Dreaming Infrastructure
kyhpudding
?
数据库高可用架构
数据库高可用架构
freezr
?
狈辞蝉辩濒叁步曲
狈辞蝉辩濒叁步曲
84zhu
?
大型网站架构的发展
大型网站架构的发展
drewz lin
?
大型网站架构的发展
大型网站架构的发展
Hesey
?
1到100000000 - 分布式大型网站的架构设计
1到100000000 - 分布式大型网站的架构设计
RolfZhang
?
数据库系统设计漫谈
数据库系统设计漫谈
james tong
?
基于惭测厂蚕尝可扩展架构设计
基于惭测厂蚕尝可扩展架构设计
jackbillow
?
浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华
zhuozhe
?
基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构
Sky Jian
?
海量日志分析系统实践,顿产补
海量日志分析系统实践,顿产补
Cevin Cheung
?
豆瓣网技术架构变迁
豆瓣网技术架构变迁
reinhardx
?
基于惭测厂蚕尝开放复制协议的同步扩展
基于惭测厂蚕尝开放复制协议的同步扩展
Sky Jian
?
大规模数据库存储方案
大规模数据库存储方案
XiaoJun Hong
?
3.架构设计篇2
3.架构设计篇2
gavin shaw
?
Bdwf11 netezza james_zheng
Bdwf11 netezza james_zheng
bigdatawf
?
大型互联网应用架构设计
大型互联网应用架构设计
thinkinlamp
?
高可用可扩展数据层 - MySQL架构实践
高可用可扩展数据层 - MySQL架构实践
Sky Jian
?
基于My sql的分布式数据库实践 公开
基于My sql的分布式数据库实践 公开
YANGL *
?
大规模网站架构
大规模网站架构
drewz lin
?
Dreaming Infrastructure
Dreaming Infrastructure
kyhpudding
?
数据库高可用架构
数据库高可用架构
freezr
?
狈辞蝉辩濒叁步曲
狈辞蝉辩濒叁步曲
84zhu
?
大型网站架构的发展
大型网站架构的发展
drewz lin
?
大型网站架构的发展
大型网站架构的发展
Hesey
?
1到100000000 - 分布式大型网站的架构设计
1到100000000 - 分布式大型网站的架构设计
RolfZhang
?
数据库系统设计漫谈
数据库系统设计漫谈
james tong
?
基于惭测厂蚕尝可扩展架构设计
基于惭测厂蚕尝可扩展架构设计
jackbillow
?
浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华
zhuozhe
?
基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构
Sky Jian
?
海量日志分析系统实践,顿产补
海量日志分析系统实践,顿产补
Cevin Cheung
?
豆瓣网技术架构变迁
豆瓣网技术架构变迁
reinhardx
?
基于惭测厂蚕尝开放复制协议的同步扩展
基于惭测厂蚕尝开放复制协议的同步扩展
Sky Jian
?
大规模数据库存储方案
大规模数据库存储方案
XiaoJun Hong
?
3.架构设计篇2
3.架构设计篇2
gavin shaw
?
Bdwf11 netezza james_zheng
Bdwf11 netezza james_zheng
bigdatawf
?
大型互联网应用架构设计
大型互联网应用架构设计
thinkinlamp
?
高可用可扩展数据层 - MySQL架构实践
高可用可扩展数据层 - MySQL架构实践
Sky Jian
?

基于惭测厂蚕尝的分布式数据库实践