SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
高可用分布式数据库系统
   架构实践


                      陈吉平
                      Oracle ACE Director
                     《构建oracle高可用环境》一书作者



                          2009年7月



 © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
内容介绍



•   淘宝网站发展历程
•   淘宝数据库的发展历程
•   分布式数据库体系架构案例
•   总结




     © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
淘宝网站发展历程
2500

                                                                   2008年:
2000                                                               交易额999.6亿
                                                                   注册用户9800万
                                                                   卖出1.4亿件服饰
                                                                   卖出1366万部手机
1500                                                               卖出3130万张充值卡

                                                           8W片尿片/天
1000                                                                                  PV
                                               3.8W片/天                                全网成交
500
                                       2W片/天
                         9000片/天
              2000片/天

  0
       2003      2004        2005        2006         2007        2008         2009


                        © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
V1.0:最早的淘宝网

• 2003年非典时期
• 使用LAMP架构(Linux, Apache, MySql, Php)
  – 业界流行的免费开源组合
• 使用Mysql数据库
  – 很少的表,少量的数据
  – 用户,交易,商品,其他




  简单的结构,但符合当时需求


          © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
V2.0:持续发展
• 集中的数据库
 – IBM小型机+EMC存储
 – Oracle数据库
 – Scale up扩展方式
• 宝贵的数据库资源
• 单点,不方便扩展
                                                 集中的数据库,简单快速

  太多的应用机器
                                               有限的链接池              集中的数据库




                                                                   Oracle数据库

            © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
其它数据存储技术的发展
• 分布式存储(TFS)
  – 解决海量,非结构化数据的
    存储
  – Key-Value数据,如图片
• 分布式Cache(Tair)
  – Cache才是王道




                                          使用PC Server做存储媒介


          © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
高可用之双机房构架
• Data Guard + Redo Mirror




           © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
V3.0:垂直扩展

• 基于服务的构架体系
 – 用户中心,商品中心等
 – 每个业务有独立的应用与                                  松耦合,服务导向的架构
   数据库环境
 – 可单独部署与扩展
• 非核心数据从Oracle迁
  移MySQL
 – E.g.,收藏夹
 – 节省费用




          © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
V4.0:水平扩展-读写分离
                                      从Scale up 到Scale out的转变
• 水平扩展构架体系
  – Scale out的解决方案
  – 缓解主库的压力
  – 独特的消息中间件同
    步方式(Notify)
• 读库可以是Oracle或
  者是Mysql。
  – 读库可扩展
  – 坏掉任何一个读库,
    不影响业务




            © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
V4.0:水平扩展-水平拆分

• 水平扩展构架体系
 – Scale out的解决方案                             解决单库天花板问题
 – 对业务基本透明
 – 可动态扩展
• 支持任何数据库
• 未来支持多主结构
 – 坏掉任何一个主库,不
   影响业务
• 未来支持压力动态均衡
 – 数据可以动态分布
 – 可以方便的扩展/减少数
   据库主机



            © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
数据平台




© 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
未来:多数据中心分布




                                  分布式多数据中心的支持




 © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
未来:云计算与平台服务
• 平台服务
 – 如Amazon的S3,Ec2,Simple Db,存储服务和标准的开放
 – 持久层不一定需要数据库




         © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
Case 1:读写分离

• 2009年实现                                                 读/写             读
  – Oracle到Mysql
  – 主库集中,读库水平分割                                                         1,2
    (主库的1/N)                                          主
                                                      表
  – 写操作与部分重要的读操
    作回主库,其它的读操作                                       1            复制
    回读库                                               2                 3,4
  – 读库故障可回主库                                          3
                                                      4
• 收到的成效                                               5
  – 缓解主库的压力瓶颈                                         6                 5,6
  – 读节点可扩展                                            7
                                                      8
  – 性能提升
                                                                        7,8


            © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
读写分离体系结构
                                  Application

                                      TDDL

                                                                       Read

Write & Read

               1/N       1/N         1/N          1/N         1/N
                                                                       …   1/N   1/N



                                  Replication data(自主技术)




       主数据库




                © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
Case 2:水平分割

• 2009年实现
  – Mysql解决方案
  – 水平分割
  – 规划16个数据库,
    1024张表
  – 分拆之前,单表16亿条
    记录
• 收到的成效
  – 成本节省
  – 速度更快
  – 扩展性提高




            © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
水平分割体系结构图

                          Application

                              TDDL

                                                               Write & Read




M   M        M              M                          M            M         M

                                        …
S   S        S              S                           S           S         S

                                                                     Read


                                TDDL



        © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
分布需要好的监控体系
• 好的系统,需要好的监控




       © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
总结

• 数据库技术发展的取决于业务与数据的规模
 – 没有最好的,只有最合适的
• 数据库技术需要结合整体构架一起考虑
 – 不是所有的东西都要用数据库
 – 配套的系统构架很重要
• 分布式环境中监控与工具的重要性
 – 工具&自动化,节省人力资源
 – 报警,了解最新状况
 – 标准化,减少错误的发生




      © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
谢谢!
                   Q&A




© 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有

Mais conteúdo relacionado

Mais procurados

中小企業E化最新趨勢與效益分析
中小企業E化最新趨勢與效益分析中小企業E化最新趨勢與效益分析
中小企業E化最新趨勢與效益分析Alex Lee
 
Introducing Intalio|BOP (Japanese)
Introducing  Intalio|BOP (Japanese)Introducing  Intalio|BOP (Japanese)
Introducing Intalio|BOP (Japanese)Tomoaki Sawada
 
期貨籌碼表0512
期貨籌碼表0512期貨籌碼表0512
期貨籌碼表0512guesta0da80
 
はてなブックマークのシステムについて
はてなブックマークのシステムについてはてなブックマークのシステムについて
はてなブックマークのシステムについてNaoya Ito
 
Perlで圧縮
Perlで圧縮Perlで圧縮
Perlで圧縮Naoya Ito
 
Silent Running Side A
Silent Running Side ASilent Running Side A
Silent Running Side AShunsaku Kudo
 
361 Ch
361 Ch361 Ch
361 Chanjaan
 
eComing Club簡介200802
eComing Club簡介200802eComing Club簡介200802
eComing Club簡介200802Robin Chen
 
Ruby による Agile 開発
Ruby による Agile 開発Ruby による Agile 開発
Ruby による Agile 開発Kenji Hiranabe
 
Cloud for Enterprise IT (Japanese)
Cloud for Enterprise IT (Japanese)Cloud for Enterprise IT (Japanese)
Cloud for Enterprise IT (Japanese)kurikiyo
 
Programming言語Lua紹介(Internet版)
Programming言語Lua紹介(Internet版)Programming言語Lua紹介(Internet版)
Programming言語Lua紹介(Internet版)zetamatta
 
WindowsMobile用アプリケーションのおはなし
WindowsMobile用アプリケーションのおはなしWindowsMobile用アプリケーションのおはなし
WindowsMobile用アプリケーションのおはなしHiroaki TAKEUCHI
 
Enterprise 2.0 : 社内Wikiの目的
Enterprise 2.0 : 社内Wikiの目的Enterprise 2.0 : 社内Wikiの目的
Enterprise 2.0 : 社内Wikiの目的Makio Tsukamoto
 
期貨籌碼表0625
期貨籌碼表0625期貨籌碼表0625
期貨籌碼表0625tsu0716
 

Mais procurados (20)

2009 Crisis
2009 Crisis2009 Crisis
2009 Crisis
 
中小企業E化最新趨勢與效益分析
中小企業E化最新趨勢與效益分析中小企業E化最新趨勢與效益分析
中小企業E化最新趨勢與效益分析
 
S19
S19S19
S19
 
Introducing Intalio|BOP (Japanese)
Introducing  Intalio|BOP (Japanese)Introducing  Intalio|BOP (Japanese)
Introducing Intalio|BOP (Japanese)
 
期貨籌碼表0512
期貨籌碼表0512期貨籌碼表0512
期貨籌碼表0512
 
はてなブックマークのシステムについて
はてなブックマークのシステムについてはてなブックマークのシステムについて
はてなブックマークのシステムについて
 
Perlで圧縮
Perlで圧縮Perlで圧縮
Perlで圧縮
 
Silent Running Side A
Silent Running Side ASilent Running Side A
Silent Running Side A
 
361 Ch
361 Ch361 Ch
361 Ch
 
eComing Club簡介200802
eComing Club簡介200802eComing Club簡介200802
eComing Club簡介200802
 
Ruby による Agile 開発
Ruby による Agile 開発Ruby による Agile 開発
Ruby による Agile 開発
 
S12
S12S12
S12
 
Cloud for Enterprise IT (Japanese)
Cloud for Enterprise IT (Japanese)Cloud for Enterprise IT (Japanese)
Cloud for Enterprise IT (Japanese)
 
Programming言語Lua紹介(Internet版)
Programming言語Lua紹介(Internet版)Programming言語Lua紹介(Internet版)
Programming言語Lua紹介(Internet版)
 
S20
S20S20
S20
 
Profile
ProfileProfile
Profile
 
WindowsMobile用アプリケーションのおはなし
WindowsMobile用アプリケーションのおはなしWindowsMobile用アプリケーションのおはなし
WindowsMobile用アプリケーションのおはなし
 
oracle
oracleoracle
oracle
 
Enterprise 2.0 : 社内Wikiの目的
Enterprise 2.0 : 社内Wikiの目的Enterprise 2.0 : 社内Wikiの目的
Enterprise 2.0 : 社内Wikiの目的
 
期貨籌碼表0625
期貨籌碼表0625期貨籌碼表0625
期貨籌碼表0625
 

Destaque

岑文初:淘宝开放平台架构设计与实践
岑文初:淘宝开放平台架构设计与实践岑文初:淘宝开放平台架构设计与实践
岑文初:淘宝开放平台架构设计与实践XMourinho
 
叶金荣:MySql优化 20090828 系统架构师大会
叶金荣:MySql优化 20090828 系统架构师大会叶金荣:MySql优化 20090828 系统架构师大会
叶金荣:MySql优化 20090828 系统架构师大会XMourinho
 
程立:面向生产环境的Soa系统设计
程立:面向生产环境的Soa系统设计程立:面向生产环境的Soa系统设计
程立:面向生产环境的Soa系统设计XMourinho
 
邵宗文:数据库极限性能测试修正版
邵宗文:数据库极限性能测试修正版邵宗文:数据库极限性能测试修正版
邵宗文:数据库极限性能测试修正版XMourinho
 
The Architecture of an API Platform
The Architecture of an API PlatformThe Architecture of an API Platform
The Architecture of an API PlatformJohannes Ridderstedt
 
What Makes a Great Open API?
What Makes a Great Open API?What Makes a Great Open API?
What Makes a Great Open API?John Musser
 

Destaque (6)

岑文初:淘宝开放平台架构设计与实践
岑文初:淘宝开放平台架构设计与实践岑文初:淘宝开放平台架构设计与实践
岑文初:淘宝开放平台架构设计与实践
 
叶金荣:MySql优化 20090828 系统架构师大会
叶金荣:MySql优化 20090828 系统架构师大会叶金荣:MySql优化 20090828 系统架构师大会
叶金荣:MySql优化 20090828 系统架构师大会
 
程立:面向生产环境的Soa系统设计
程立:面向生产环境的Soa系统设计程立:面向生产环境的Soa系统设计
程立:面向生产环境的Soa系统设计
 
邵宗文:数据库极限性能测试修正版
邵宗文:数据库极限性能测试修正版邵宗文:数据库极限性能测试修正版
邵宗文:数据库极限性能测试修正版
 
The Architecture of an API Platform
The Architecture of an API PlatformThe Architecture of an API Platform
The Architecture of an API Platform
 
What Makes a Great Open API?
What Makes a Great Open API?What Makes a Great Open API?
What Makes a Great Open API?
 

陈吉平:高可用分布式数据库系统架构实践

  • 1. 高可用分布式数据库系统 架构实践 陈吉平 Oracle ACE Director 《构建oracle高可用环境》一书作者 2009年7月 © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
  • 2. 内容介绍 • 淘宝网站发展历程 • 淘宝数据库的发展历程 • 分布式数据库体系架构案例 • 总结 © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
  • 3. 淘宝网站发展历程 2500 2008年: 2000 交易额999.6亿 注册用户9800万 卖出1.4亿件服饰 卖出1366万部手机 1500 卖出3130万张充值卡 8W片尿片/天 1000 PV 3.8W片/天 全网成交 500 2W片/天 9000片/天 2000片/天 0 2003 2004 2005 2006 2007 2008 2009 © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
  • 4. V1.0:最早的淘宝网 • 2003年非典时期 • 使用LAMP架构(Linux, Apache, MySql, Php) – 业界流行的免费开源组合 • 使用Mysql数据库 – 很少的表,少量的数据 – 用户,交易,商品,其他 简单的结构,但符合当时需求 © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
  • 5. V2.0:持续发展 • 集中的数据库 – IBM小型机+EMC存储 – Oracle数据库 – Scale up扩展方式 • 宝贵的数据库资源 • 单点,不方便扩展 集中的数据库,简单快速 太多的应用机器 有限的链接池 集中的数据库 Oracle数据库 © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
  • 6. 其它数据存储技术的发展 • 分布式存储(TFS) – 解决海量,非结构化数据的 存储 – Key-Value数据,如图片 • 分布式Cache(Tair) – Cache才是王道 使用PC Server做存储媒介 © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
  • 7. 高可用之双机房构架 • Data Guard + Redo Mirror © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
  • 8. V3.0:垂直扩展 • 基于服务的构架体系 – 用户中心,商品中心等 – 每个业务有独立的应用与 松耦合,服务导向的架构 数据库环境 – 可单独部署与扩展 • 非核心数据从Oracle迁 移MySQL – E.g.,收藏夹 – 节省费用 © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
  • 9. V4.0:水平扩展-读写分离 从Scale up 到Scale out的转变 • 水平扩展构架体系 – Scale out的解决方案 – 缓解主库的压力 – 独特的消息中间件同 步方式(Notify) • 读库可以是Oracle或 者是Mysql。 – 读库可扩展 – 坏掉任何一个读库, 不影响业务 © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
  • 10. V4.0:水平扩展-水平拆分 • 水平扩展构架体系 – Scale out的解决方案 解决单库天花板问题 – 对业务基本透明 – 可动态扩展 • 支持任何数据库 • 未来支持多主结构 – 坏掉任何一个主库,不 影响业务 • 未来支持压力动态均衡 – 数据可以动态分布 – 可以方便的扩展/减少数 据库主机 © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
  • 11. 数据平台 © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
  • 12. 未来:多数据中心分布 分布式多数据中心的支持 © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
  • 13. 未来:云计算与平台服务 • 平台服务 – 如Amazon的S3,Ec2,Simple Db,存储服务和标准的开放 – 持久层不一定需要数据库 © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
  • 14. Case 1:读写分离 • 2009年实现 读/写 读 – Oracle到Mysql – 主库集中,读库水平分割 1,2 (主库的1/N) 主 表 – 写操作与部分重要的读操 作回主库,其它的读操作 1 复制 回读库 2 3,4 – 读库故障可回主库 3 4 • 收到的成效 5 – 缓解主库的压力瓶颈 6 5,6 – 读节点可扩展 7 8 – 性能提升 7,8 © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
  • 15. 读写分离体系结构 Application TDDL Read Write & Read 1/N 1/N 1/N 1/N 1/N … 1/N 1/N Replication data(自主技术) 主数据库 © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
  • 16. Case 2:水平分割 • 2009年实现 – Mysql解决方案 – 水平分割 – 规划16个数据库, 1024张表 – 分拆之前,单表16亿条 记录 • 收到的成效 – 成本节省 – 速度更快 – 扩展性提高 © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
  • 17. 水平分割体系结构图 Application TDDL Write & Read M M M M M M M … S S S S S S S Read TDDL © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
  • 18. 分布需要好的监控体系 • 好的系统,需要好的监控 © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
  • 19. 总结 • 数据库技术发展的取决于业务与数据的规模 – 没有最好的,只有最合适的 • 数据库技术需要结合整体构架一起考虑 – 不是所有的东西都要用数据库 – 配套的系统构架很重要 • 分布式环境中监控与工具的重要性 – 工具&自动化,节省人力资源 – 报警,了解最新状况 – 标准化,减少错误的发生 © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有
  • 20. 谢谢! Q&A © 2003-2009 Taobao.com All Rights Reserved. 淘宝网 版权所有