• 1. 淘宝OceanBase开发组 杨志丰 zhuweng.yzf@taobao.com 淘宝网大数据解决之道
  • 2. 淘宝数据背景与需求解决之道淘宝数据库解决方案未来展望下一步工作Agenda
  • 3. 淘宝年度交易额数据来自公开媒体亿元人民币6000万用户登录/天20亿PV/天
  • 4. 淘宝网站流量数据来源:www.alexa.com一次页面展示要访问后台数据几十次!一个报表需要分析几TB乃至百TB数据!
  • 5. 什么地方人最爱大闸蟹?淘宝数据(1)离线数据:39PB+, 2000+台Hadoop机群, 40000+个MapReduce作业/天2010年淘宝上最畅销手机价格区间?2010年什么年货最畅销?糖果、蜜饯、炒货、冲饮品、饼干广东、上海、浙江、江苏、北京
  • 6. 淘宝数据(2)在线非结构化数据(图片):2700+TB商品图片,商品描述图片实时响应,同城热备+异地灾备淘宝分布式文件系统TFS
  • 7. 淘宝数据(3)在线结构化数据:数据库商品库、评价库、交易库、用户库、店铺库…商品库:14亿/8亿(下线/在线)商品 QPS/TPS:78K/2.7K(峰值) Read/Write IOPS:46K/7K(峰值)
  • 8. 淘宝收藏夹存储买家收藏的宝贝: 收藏信息表,65亿条记录 宝贝信息表,4亿条记录
  • 9. 淘宝收藏夹业务需求: 每个买家可有千条收藏 热门宝贝可能被十几万人收藏 宝贝的价格、收藏人气等属性随时变化 按宝贝属性(如价格)排序展示买家的收藏挑战:每天1.2亿次访问 响应时间<100ms
  • 10. 收藏夹数据库收藏信息表收藏宝贝表100ms内完成1千次读?
  • 11. 收藏夹数据库挑战收藏宝贝表收藏信息表热门商品的价格/人气变化?淘宝OceanBase海量数据库
  • 12. 淘宝数据背景与需求……解决之道淘宝数据库解决方案未来展望下一步工作Agenda
  • 13. 淘宝数据库特点访问量大:每天几亿~几百亿次访问数据量大:单表几亿~几百亿条记录数量多:以千计的数据库服务器非常重要:几乎所有淘宝业务都依赖
  • 14. 解决方案从前 Oracle 小型机 高端存储现在 MySQL,OceanBase,Hbase,Oracle,MongoDB等 普通PC服务器
  • 15. DBMS:分库与分表业务逻辑支持扩展性、容错及故障恢复缓解了数据量大与访问量大的挑战固态盘(SSD)分表后事务
  • 16. 典型解决方案对比16数据规模事务与数据一致性万亿记录(十PB)千亿记录(百TB)千万记录(百GB)最终一致单行事务跨行跨表事务Oracle/DB2…CassandraHBasePercolatorOceanBaseDynamoBigtableNoSQL:扩展性好,但事务、一致性欠缺DBMS:事务 + 一致性,但扩展性欠缺
  • 17. OceanBase设计目标可扩展:数千亿条记录、数百TB数据、数十万QPS、数万TPS范围查询、联表…实时容错、自动故障恢复事务(ACID)99.999%可用性普通PC服务器存储数据
  • 18. 设计思想数据总量大,但更新比例小增量数据:动态B树,内存 + SSD基准数据:静态B+树、分布式存储(磁盘或SSD)100TB数据,1%更新  1TB数据 = 基准数据 + 增量数据
  • 19. 系统架构ClientChunkServer/MergeServerRootServer/ UpdateServer (主)RootServer/ UpdateServer (备)ChunkServer/MergeServer元数据增量数据数据融合基准数据
  • 20. 数据结构roottablettablettablet基准数据:B+树,ChunkServer(s)增量数据:B树 & Copy-on-write,UpdateServer
  • 21. 读写事务读事务:MergeServer(s),基准数据 + 增量数据写事务:UpdateServer
  • 22. 基准数据更新新的基准数据 = 旧的基准数据 + 增量数据快照,ChunkServer(s)低优先级 + 低负载时段基准数据多副本不必要同步基准数据多副本必须一致
  • 23. 写性能&扩展性UpdateServer:B树 + Copy-on-write,10万TPS + 100万QPS(内存)Group commit + 带电池/电容RAID卡万兆网卡主备机 + 主备机群一主多备,主写备读内存 + SSD
  • 24. 容错&故障恢复单机群:3数据副本同城热备(实时日志同步):2+2数据副本远程灾备(准实时日志同步):2+2+2数据副本数据记录自校验(磁盘&网络)在线切换、在线升级(不停服务)
  • 25. 数据丢失几率分析n台设备,年度故障率,则单机t小时内故障概率为= ×t/(365*24)恰好0台故障:(1-)n 恰好1台故障:n××(1-)n-1恰好2台故障:n×(n-1)/2!×2×(1-)n-2恰好3台故障: n×(n-1)×(n-2)/3!×3×(1-)n-3……
  • 26. 数据丢失概率
  • 27. 收藏夹应用1.2亿次/天访问单表超过65亿条记录服务器数量:16*2  14*2  6*2半年前上线平均查询响应时间:~80ms
  • 28. 收藏夹线上运行图平均查询响应时间一周查询曲线一周写事务曲线
  • 29. 双11网购狂欢节
  • 30. 双11收藏夹数据查询: 2.3亿+2.9亿次(scan/get)更新操作: 1.85亿次峰值QPS: 9000+5000(scan/get)总库量: 170亿条记录
  • 31. 淘宝数据背景与需求解决之道淘宝数据库解决方案未来展望下一步工作Agenda
  • 32. SSD5000次写入,写入量100%/天  10年寿命ChunkServer:大量随机读、批量顺序读和写,没有随机写单机:5万QPS线上试运行中,机器数量:14  6
  • 33. OLAPOLAP查询  多机并发UpdateServer:增量修改,OLTP、OLAP写事务性能没有明显差异开发中,Q4上线
  • 34. MapReduce离线数据分析:避免大量数据导出完成开发,应用开发中
  • 35. SQL部分支持SELECT ipv, count(iuv) AS ci, ipv * ci FROM lz_rpt_auction_info_d WHERE unit_id=3 AND day=D'2011-10-31' GROUP BY ipv HAVING ci>5 ORDER BY ci DESC;
  • 36. 不足只实现部分join尚未实现view,临时表尚未支持辅助索引…
  • 37. 源码开放淘蝌蚪:数十个开源项目/工具 http://code.taobao.org/ TFS:淘宝分布式文件系统TAIR:淘宝分布式CACHE服务OceanBase:淘宝海量数据库 http://oceanbase.taobao.org/ ……
  • 38. 淘宝数据背景与需求解决之道淘宝数据库解决方案未来展望下一步工作Agenda
  • 39. Thanks邮件: yangzhifeng83@gmail.com 主页: http://net.pku.edu.cn/~yzf/ 微博: http://weibo.com/yangzhifeng83Q&A