狠狠撸

狠狠撸Share a Scribd company logo
高可用分布式数据库系统
   架构实践


                      陈吉平
                      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. 淘宝网 版权所有
痴4.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. 淘宝网 版权所有

More Related Content

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

  • 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. 痴4.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. 淘宝网 版权所有