Submit Search
Upload
豆瓣数据架构实践
•
102 likes
•
9,016 views
Xupeng Yun
Follow
2014-04-19 在 ACOUG 活动上的分享,介绍了豆瓣数据架构的演进过程,以及过程中遇到的问题、目前正在面临的挑战等。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 64
Download Now
Download to read offline
Recommended
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
liu sheng
No sql@vip new
No sql@vip new
Chao Zhu
D baa s_in_xiaomi
D baa s_in_xiaomi
hdksky
大型电商的数据服务的要点和难点
大型电商的数据服务的要点和难点
Chao Zhu
自助工具助Dba提升效率
自助工具助Dba提升效率
Chao Zhu
浅谈电商网站数据访问层(DAL)与 ORM 之适用性
浅谈电商网站数据访问层(DAL)与 ORM 之适用性
Xuefeng Zhang
中大型规模的网站架构运维 Saac
中大型规模的网站架构运维 Saac
Chao Zhu
数据架构方面的一些探讨
数据架构方面的一些探讨
Chao Zhu
More Related Content
What's hot
Feed服务架构-新浪微博新员工培训议题
Feed服务架构-新浪微博新员工培训议题
XiaoJun Hong
分布式缓存与队列
分布式缓存与队列
XiaoJun Hong
阿里自研数据库 Ocean base实践
阿里自研数据库 Ocean base实践
drewz lin
大规模数据库存储方案
大规模数据库存储方案
XiaoJun Hong
唯品会大数据实践 Sacc pub
唯品会大数据实践 Sacc pub
Chao Zhu
新浪微博Feed服务架构
新浪微博Feed服务架构
XiaoJun Hong
新浪微博redis技术演化
新浪微博redis技术演化
XiaoJun Hong
新浪微博分布式缓存与队列-2013版
新浪微博分布式缓存与队列-2013版
XiaoJun Hong
高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践
孙立
美团点评技术沙龙010-点评RDS系统介绍
美团点评技术沙龙010-点评RDS系统介绍
美团点评技术团队
天涯论坛的技术进化史-Qcon2011
天涯论坛的技术进化史-Qcon2011
Yiwei Ma
1号店数据库架构
1号店数据库架构
Louis liu
艺龙旅行网架构案例分享-Qcon2011
艺龙旅行网架构案例分享-Qcon2011
Yiwei Ma
redis 适用场景与实现
redis 适用场景与实现
iammutex
大型系统的缓存标准化之路—从主从多级重client到一体化
大型系统的缓存标准化之路—从主从多级重client到一体化
XiaoJun Hong
基于MySQL的分布式数据库实践
基于MySQL的分布式数据库实践
jackbillow
MySQL压力测试经验
MySQL压力测试经验
Jinrong Ye
美团点评技术沙龙14:美团云对象存储系统
美团点评技术沙龙14:美团云对象存储系统
美团点评技术团队
分布式Key Value Store漫谈
分布式Key Value Store漫谈
Tim Y
张铁安:Feed系统架构浅析
张铁安:Feed系统架构浅析
Leechael
What's hot
(20)
Feed服务架构-新浪微博新员工培训议题
Feed服务架构-新浪微博新员工培训议题
分布式缓存与队列
分布式缓存与队列
阿里自研数据库 Ocean base实践
阿里自研数据库 Ocean base实践
大规模数据库存储方案
大规模数据库存储方案
唯品会大数据实践 Sacc pub
唯品会大数据实践 Sacc pub
新浪微博Feed服务架构
新浪微博Feed服务架构
新浪微博redis技术演化
新浪微博redis技术演化
新浪微博分布式缓存与队列-2013版
新浪微博分布式缓存与队列-2013版
高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践
美团点评技术沙龙010-点评RDS系统介绍
美团点评技术沙龙010-点评RDS系统介绍
天涯论坛的技术进化史-Qcon2011
天涯论坛的技术进化史-Qcon2011
1号店数据库架构
1号店数据库架构
艺龙旅行网架构案例分享-Qcon2011
艺龙旅行网架构案例分享-Qcon2011
redis 适用场景与实现
redis 适用场景与实现
大型系统的缓存标准化之路—从主从多级重client到一体化
大型系统的缓存标准化之路—从主从多级重client到一体化
基于MySQL的分布式数据库实践
基于MySQL的分布式数据库实践
MySQL压力测试经验
MySQL压力测试经验
美团点评技术沙龙14:美团云对象存储系统
美团点评技术沙龙14:美团云对象存储系统
分布式Key Value Store漫谈
分布式Key Value Store漫谈
张铁安:Feed系统架构浅析
张铁安:Feed系统架构浅析
Similar to 豆瓣数据架构实践
Mysql企业备份发展及实践
Mysql企业备份发展及实践
maclean liu
Crawler pieces
Crawler pieces
Yue Tian
优酷 Web网站架构案例分析
优酷 Web网站架构案例分析
George Ang
Key value store
Key value store
xuanhan863
Youku arch qcon2009_beijing
Youku arch qcon2009_beijing
drewz lin
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
acelyc1112009
1到100000000 - 分布式大型网站的架构设计
1到100000000 - 分布式大型网站的架构设计
RolfZhang
線上埋碼資料收集實作
線上埋碼資料收集實作
FEG
Hacking Nginx at Taobao
Hacking Nginx at Taobao
Joshua Zhu
大规模数据处理
大规模数据处理
Kay Yan
大规模数据处理
大规模数据处理
airsex
Nosql三步曲
Nosql三步曲
84zhu
数据库性能诊断的七种武器
数据库性能诊断的七种武器
Leyi (Kamus) Zhang
Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统
智杰 付
Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统
Wensong Zhang
淘宝图片存储与Cdn系统
淘宝图片存储与Cdn系统
Dai Jun
Taobao 海量图片存储与CDN系统02
Taobao 海量图片存储与CDN系统02
lovingprince58
Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统
Michael Zhang
互联网创业服务器运维工具集
互联网创业服务器运维工具集
zhen chen
開發環境建置
開發環境建置
Shengyou Fan
Similar to 豆瓣数据架构实践
(20)
Mysql企业备份发展及实践
Mysql企业备份发展及实践
Crawler pieces
Crawler pieces
优酷 Web网站架构案例分析
优酷 Web网站架构案例分析
Key value store
Key value store
Youku arch qcon2009_beijing
Youku arch qcon2009_beijing
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
1到100000000 - 分布式大型网站的架构设计
1到100000000 - 分布式大型网站的架构设计
線上埋碼資料收集實作
線上埋碼資料收集實作
Hacking Nginx at Taobao
Hacking Nginx at Taobao
大规模数据处理
大规模数据处理
大规模数据处理
大规模数据处理
Nosql三步曲
Nosql三步曲
数据库性能诊断的七种武器
数据库性能诊断的七种武器
Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统
淘宝图片存储与Cdn系统
淘宝图片存储与Cdn系统
Taobao 海量图片存储与CDN系统02
Taobao 海量图片存储与CDN系统02
Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统
互联网创业服务器运维工具集
互联网创业服务器运维工具集
開發環境建置
開發環境建置
豆瓣数据架构实践
1.
豆瓣数据架构实践 员(yùn)旭(xù)鹏(péng) 2014-04-19
2.
关于豆瓣 - 2005
年 3 ⽉月上线 - 以发现和分享为核⼼心的社区 - 读书、电影、⾳音乐、同城、⼩小组、阅读、 FM、东西等等
3.
- 架构变迁 -
⼏几个问题 - ⼀一些挑战
4.
一些数据 - 2TB+
结构化数据 (MySQL) - 3TB+ ⾮非结构化⽂文本数据 (DoubanDB) - 100TB+ 图⽚片、⾳音乐等 (DoubanFS) - 约 30 个集群 (MySQL) - 约 30 对 Redis - 约 20 台服务器,⼀一半线上、⼀一半离线 (MySQL) - 2 个 DBA (2013.08 前 0.5 个)
5.
Application rw luz
6.
Application rw luz
读压⼒力⾼高
7.
Application rw luz
读压⼒力⾼高 引⼊入 Memcached
8.
Application luz Memcached
rw
9.
Application luz Memcached
rw 数据挖掘和推荐反馈
10.
Application luz Memcached
rw 数据挖掘和推荐反馈 新的 slave ⽤用于离线读
11.
Application luz Memcached
luz slave Data mining rw repl read write
12.
Application luz Memcached
luz slave Data mining rw repl read write 读写压⼒力⾼高,离线写对线上带来冲击
13.
拆库,使⽤用独⽴立的库⽤用于数据挖掘反馈 Application luz
Memcached luz slave Data mining rw repl read write 读写压⼒力⾼高,离线写对线上带来冲击
14.
Application elf elf
slave Data mining rw luz luz slave read repl repl write read Memcached
15.
Application elf elf
slave Data mining MyISAM 全⽂文搜索出现性能问题 rw luz luz slave read repl repl write read Memcached
16.
Application elf elf
slave Data mining rw luz luz slave read repl repl write read Memcached 使⽤用独⽴立的搜索引擎 MyISAM 全⽂文搜索出现性能问题
17.
Application Data mining
read rw luz repl repl write elf elf slave read luz slave Memcached Search
18.
Application Data mining
read rw luz repl repl write read ⼤大⽂文本字段严重影响性能 elf elf slave luz slave Memcached Search
19.
Application Data mining
read rw luz repl repl write elf elf slave read ⼤大⽂文本字段严重影响性能 开发 BeansDB,拆分⽂文本字段 luz slave Memcached Search
20.
Application Data mining
read rw luz repl repl write elf elf slave read luz slave Memcached Search BeansDB
21.
Application Data mining
read rw luz repl repl write elf elf slave 读压⼒力增长快 luz slave read Memcached Search BeansDB
22.
Application Data mining
read rw luz repl repl write read 读压⼒力增长快 读写分离 elf elf slave luz slave Memcached Search BeansDB
23.
Application Data mining
read rw luz repl repl write read read elf elf slave luz slave Memcached Search BeansDB
24.
Application Data mining
read rw luz repl repl write read 读写分离开发成本⾼高 read elf elf slave luz slave Memcached Search BeansDB
25.
Application Data mining
read rw luz repl repl write elf elf slave read 读写分离开发成本⾼高 read 停⽤用读写分离,继续拆库 luz slave Memcached Search BeansDB
26.
Application Data mining
read rw luz repl repl write read rw muk repl muk slave read elf elf slave luz slave Memcached Search BeansDB
27.
Application Data mining
read rw luz repl repl write read rw muk repl read 去重、计数代价⾼高 elf elf slave luz slave muk slave Memcached Search BeansDB
28.
Application Data mining
read rw luz repl repl write read rw muk repl read 去重、计数代价⾼高 引⼊入 Redis elf elf slave luz slave muk slave Memcached Search BeansDB
29.
Application Memcached Data
mining read rw luz repl repl write read rw muk repl read Search elf elf slave luz slave muk slave BeansDB Redis
30.
- 架构变迁 -
⼏几个问题 - ⼀一些挑战
31.
Failover Application master
slave Application slave master
32.
Failover - 早期通过
hostname 访问数据库,切换后需要重启应⽤用 - skinbark => leaflock
33.
Failover - 早期通过
hostname 访问数据库,切换后需要重启应⽤用 - skinbark => leaflock - 后来改为 hosts alias,切换时更新 hosts,不需要重启应⽤用 - luz_m(on skinbark) => luz_m(on leaflock)
34.
Failover - 早期通过
hostname 访问数据库,切换后需要重启应⽤用 - skinbark => leaflock - 后来改为 hosts alias,切换时更新 hosts,不需要重启应⽤用 - luz_m(on skinbark) => luz_m(on leaflock) - 服务器变多,更新 hosts 过程太慢,开发配置推送系统 - 基于 zookeeper
35.
分库分表 Application Middleware
luz elf
36.
分库分表 - sqlstore
Python 客户端库,数据库访问中间层,屏蔽分库细节
37.
分库分表 - sqlstore
Python 客户端库,数据库访问中间层,屏蔽分库细节 - 分库、分表前预发布新路由信息,重启应⽤用
38.
分库分表 - sqlstore
Python 客户端库,数据库访问中间层,屏蔽分库细节 - 分库、分表前预发布新路由信息,重启应⽤用 - 应⽤用变多之后重启所有的应⽤用很困难
39.
分库分表 - sqlstore
Python 客户端库,数据库访问中间层,屏蔽分库细节 - 分库、分表前预发布新路由信息,重启应⽤用 - 应⽤用变多之后重启所有的应⽤用很困难 - 基于配置推送系统,亚秒级更新进程内的路由信息 - 基于 zookeeper + inotify
40.
定位性能问题 db db
41.
定位性能问题 - 从
Web ⼊入⼜⼝口处给每个查询增加注释,标明来源
42.
定位性能问题 - 从
Web ⼊入⼜⼝口处给每个查询增加注释,标明来源 - 基于 tcpdump + dpark 从旁路分析流量,从多个纬度分析查询
43.
定位性能问题 - 从
Web ⼊入⼜⼝口处给每个查询增加注释,标明来源 - 基于 tcpdump + dpark 从旁路分析流量,从多个纬度分析查询 - 外⽹网 IP - ⼊入⼜⼝口 URL - normalized SQL - 时间 - …
44.
应对突发的性能问题 旁路收集 实时反馈分析修正
45.
应对突发的性能问题 - 给客户端推送临时的封禁规则,封禁有性能问题的查询
46.
应对突发的性能问题 - 给客户端推送临时的封禁规则,封禁有性能问题的查询
- 优化索引,或改写查询、重构应⽤用
47.
追溯问题和审计 400 300
200 100 0 00:00 01:00 02:00 03:00 04:00 05:00 06:00 07:00
48.
追溯问题和审计 - tcpdump
旁路收集并保留历史数据
49.
追溯问题和审计 - tcpdump
旁路收集并保留历史数据 - 离线分析数据,追溯问题
50.
追溯问题和审计 - tcpdump
旁路收集并保留历史数据 - 离线分析数据,追溯问题 - 敏感数据访问审计
51.
数据备份和恢复 - 逻辑备份,恢复很慢
- 物理备份⾄至 MooseFS - 多机房在时间上交错备份 - PITR(即时恢复)使⽤用 MooseFS snapshot + binlog
52.
监控与报警 Graphite +
StatsD
53.
- 架构变迁 -
⼏几个问题 - ⼀一些挑战
54.
连接压力 - 使⽤用长连接获得更好的性能
- 每实例 3000 - 5000 连接 - 基于 proxy 的外部连接池
55.
QoS - ⼤大事务
- 极慢查询 - CPU 密集型查询 - 资源隔离
56.
人才的延续
57.
理想的 DBA -
扎实的系统管理能⼒力
58.
理想的 DBA -
扎实的系统管理能⼒力 - 掌控 MySQL / Redis / MongoDB / 以及其他 任何所需系统的能⼒力
59.
理想的 DBA -
扎实的系统管理能⼒力 - 掌控 MySQL / Redis / MongoDB / 以及其他 任何所需系统的能⼒力 - 深⼊入研究特定问题的能⼒力
60.
理想的 DBA -
扎实的系统管理能⼒力 - 掌控 MySQL / Redis / MongoDB / 以及其他 任何所需系统的能⼒力 - 深⼊入研究特定问题的能⼒力 - ⾃自动化⼀一切能⾃自动化的东西的能⼒力
61.
理想的 DBA -
扎实的系统管理能⼒力 - 掌控 MySQL / Redis / MongoDB / 以及其他 任何所需系统的能⼒力 - 深⼊入研究特定问题的能⼒力 - ⾃自动化⼀一切能⾃自动化的东西的能⼒力 - 持续的⾃自驱动⼒力
62.
理想的 DBA -
扎实的系统管理能⼒力 - 掌控 MySQL / Redis / MongoDB / 以及其他 任何所需系统的能⼒力 - 深⼊入研究特定问题的能⼒力 - ⾃自动化⼀一切能⾃自动化的东西的能⼒力 - 持续的⾃自驱动⼒力 Don’t Be Afraid!
63.
Q & A
http://www.douban.com/people/recordus/ xupeng@douban.com Twitter: @xupeng 微博:@yunxupeng
64.
谢谢!
Download Now