淘宝在线交易数据演变PPT学习课件_第1页
淘宝在线交易数据演变PPT学习课件_第2页
淘宝在线交易数据演变PPT学习课件_第3页
淘宝在线交易数据演变PPT学习课件_第4页
淘宝在线交易数据演变PPT学习课件_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、淘宝在线交易数据演变,胡嘉川(牧劳) 2012-04-21,1,一次淘宝购物之旅 交易业务和系统结构介绍 20032008从Mysql到小型机Oracle 2009年交易库拆分为买家库和卖家库 2010年交易卖家库的优化和买家库一拆二 2011年交易卖家库从Oracle到Mysql,磁盘SSD 2011年交易买家库去小型机和Oracle,磁盘 FusionIO,主要内容,2,一次淘宝购物之旅,3,2020/8/3,一次淘宝购物之旅,第一步:找到想买的宝贝,4,一次淘宝购物之旅,第二步:查看宝贝详情,5,一次淘宝购物之旅,第三步:把想买的宝贝加入购物车,6,一次淘宝购物之旅,第四步:结算订单,7

2、,一次淘宝购物之旅,第五步:付款,8,一次淘宝购物之旅,第六步:查看购买的宝贝,9,交易业务和系统结构介绍,10,2020/8/3,淘宝交易数据库的组成结构,买家库1,买家库2,买家库3,买家库32,Mysql + FusionIO,卖家库1,卖家库2,卖家库3,卖家库16,Mysql + SSD,Hbase集群,交易数据库,历史库,11,买家库的业务结构,买家数据库,12,卖家库的业务结构,卖家数据库,13,淘宝交易流程介绍,COD交易,卡易售,自动发货,分销交易,酒店交易,机票交易,普通宝贝,直冲交易,商超交易,商城家装,14,淘宝交易角色介绍,买家,卖家,下单,付款,确认收货,交易查询,

3、发货,修改价格,交易查询,15,淘宝交易数据库的系统结构,消息中间件,交易复制系统,交易服务系统,买家库,卖家库,写,读,16,20032008从MYSQL到Oracle,17,2020/8/3,2003年的数据库体系,18,2003年到2008年数据库的演变,Oracle,小型机,Mysql,商品,用户,交易,业务发展,垂直拆分,2008年交易日均达到200万订单,19,2009年交易库拆分为买家库和卖家库,20,2020/8/3,2009年交易库概况,交易主库,TOP导订单,2009年日均交易达到600万订单,21,把卖家查询分离出去,已卖出,Detail页,22,如何拆分卖家库(2009

4、年7月),买家,卖家,买家库,卖家库,写交易,已买到,买家单条查询交易,卖家单条查询交易和写交易,按卖家查询交易,16个Oracle节点,23,如何迁移和实时复制订单数据,交易系统,订单更改发Notify消息,卖家库,交易复制系统,订阅交易消息,实时更新卖家库数据,24,卖家库拆分后所承担的业务结构,卖家库主库,卖家库备1,卖家库备2,已卖出查询,Detail页交易查询,TOP及其它卖家查询,25,卖家库拆分后的一些故障,HSF服务,前端请求,26,防止此问题采取的措施-流控,27,防止此问题采取的措施-监控,28,2010年交易卖家库的优化和买家库一拆二,29,2020/8/3,卖家库的压力

5、越来越大,卖家数据库,30,卖家库的优化-查询Tair化,累计售出Tair化,销售列表Tair化,卖家提醒Tair化,31,卖家查询Tair化原理,Notify,交易系统,Detail,Tair,交易复制系统,获取累计售出数和销售列表,Tair里没数据,到TP取,业务变更,实时更新Tair,32,买家库拆分方案准备-选型,一拆二,一拆多,Oracle,Oracle,小型机+EMC,PC+EMC,Oracle,Oracle,33,买家拆分方案准备-业务模型,已买到查询,交易流程,买家,单条查询,34,买家拆分确定最终方案,一拆二,Comm(交易老主库),Comm(交易老备库),Comm备(原IC

6、主),Comm2备(原IC备),交易数据是冗余两份,不需要迁移数据 不使用TDDL,对DAO层暴露路由,35,买家拆分准备工作,订单ID路由,(1) 定位具体库 (2) 为保持简单老订单ID,直接查两次 (3) 不依赖路由表,36,2011年卖家库去O和买家库去IOE,37,2020/8/3,卖家库继续只有一倍余量,卖家查询的IO瓶颈越来越大,Oracle的授权费用问题,38,卖家库的去O选型,KSearch,OceanBase,卖家库,Mysql + SSD,目标:解决磁盘IO瓶颈,39,卖家库去O的详细步骤,1. 设定4倍容量,4倍性能余量目标,2. 收集接口访问数据,准备性能测试方案,3

7、. 准备交易增量复制和全量导入,4. Beta卖家查询,观察日志,5. 全部切换到Mysql,添加监控,40,买家库去IOE前的准备-已买到的Tair化,41,交易买家库扩展目标(2011年),交易买家库Oracle集群只有一倍余量,目标:4倍数据量下,支撑6倍现有系统压力,42,交易买家库去IOE硬件选型-Fusion IO,IOPS性能很高,寿命较长,较SSD成本高,稳定性比SSD好,43,交易买家库去IOE硬件选型-SSD,44,交易买家库去IOE硬件选型-EMC+PC,Oracle结合很好,不丢数据,有4倍余量,成本过高,扩展性不好,45,交易买家库去IOE硬件选型-成本对比,当前买家

8、Oracle主库成本:2200万RMB,RAID:504万RMB,不做RAID:364万RMB,RAID:294万RMB,1060万RMB,46,交易买家库去IOE最终硬件选定-FusionIO,稳定性好,性能最好,性价比高,硬件在发展,成本在降低,性能测试结果:MYSQL成为了性能瓶颈,FIO的极限远未达到 单台QPS:3.5W * 16 = 56万 单台TPS:1.2W * 16 = 19.2万,47,交易买家库去IOE-如何分库分表,分库分表目标,保持简单,考虑 4 倍 数据量,考虑 4 倍 性能,考虑 未来节点扩展,分32逻辑库, 16台服务器 1024张表,尽量只对核心表作分库分表

9、减少各表事务依赖,把其它业务放到杂表库,48,交易买家库去IOE-新订单ID路由准备,(1) 定位具体库 (2) 添加路由Tair,通过Tair拿到具体的买家ID (3) 新订单ID直接通过ID里的路由信息定位库和表 (4)老订单ID会随着历史库迁移,访问慢慢变少,49,交易买家库去IOE-更新丢失如何补偿,交易系统,支付宝,买家库,对账系统,通过支付宝恢复淘宝交易,50,交易买家库去IOE-增量复制和全量导入,交易系统,Notify,买家库(Oracle),Tradelogs,订阅交易消息复制,买家库(Mysql),交易数据写入,对账系统,51,交易买家库去IOE-如何Beta,交易系统,买家库(Oracle),写交易,买家库(Mysql),已买到和订单详情查询Mysql,52,交易买家库去IOE-容灾方案,单库容灾切换,Mysql主库,Mysql备库,TDDL动态数据源切换(可批量切换),Mysql回切Oracle,Oracle买家库,Mysql买家库,程序开关切换,53,交易买家库去IOE-停机发布,数据一致性保证,全量对账,每天增量对账,停机前一天开启实时对账,发布阶段,实时对账保证停前数据一致,停Oracle写,发新代码,54,经验教训总结,55,2020/8/3,一些经验教训,尽量短事务,利用消息中间件实现最终一致性 更新数据按照固定的顺序更新,防止

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论