本文主要是介绍淘宝iDataForum归来,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天参加了淘宝的iDataForum,收获不少。详细的PPT过段时间能发在 官方网站上。
Topic 1:淘宝架构的变迁。
这个topic主要讲淘宝这几年数据库面临的一些问题以及问题的解决。下面的数据还是老一些的数据。
- 淘宝现在有10亿种商品。
- 小文件和图片加起来有1000T
- CDN流量为138G/s
- 13亿/天(个人算了下,忙时3w~4w/s)的PV
- 读写比例大致为10:1
- 单个核心DB(Oracle+IBM小机+EMC高端存储),处理数的SQL为4w/s
- 用户中心的api请求数为60亿次/天
- search index,每秒增量build一次,每天全量build一次。build时间很快,因为数据分散到很多机器。
- 淘宝现在的核心DB数量小于10个,mysql库有500+个。这个数据很有意义,可以看到在这种业务量级下的服务器数量。还不包括应用服务器和CDN服务器。
- 使用Oracle Dataguard进行数据备份
- 淘宝原先是基于lamp构建,后改为java/Oracle等,现在又考虑把一些非核心的使用mysql进行替代。
- Mysql和Oracle的关系是考虑读写分离,Oracle上主要负责数据存储和持久化,Mysql为读取库(Master-Slave方式)。数据同步时延小于200ms。
- 淘宝对数据进行了垂直拆分的方式,把数据划分为“用户中心”、“商品中心”、“交易中心”等。这种中心的方式,使得各个中心能够隔离,同时可以针对各部分进行优化。
- 中心的拆分带来的问题是完整数据可能需要从多个中心进行,淘宝使用了HFS(类似RPC方式,注重高效)负责各中心之间数据的交互。
- 淘宝正在研发自主的数据库OceanBase。一个很抢眼的特性是,能够把随机IO合并为顺序IO。
Topic 2:数据库性能模型与容量规划
提出了以响应时间为核心的规划思想,有点意思。hellodba的博主,之前看过他的blog,讲的也是这方面的,这次更透彻了。
- 数据库的时间模型,详见ppt吧。
- 影响IOPS的因素:磁盘转速,寻道时延
- 影响吞吐量的因素:磁盘转速,接口类型,内外部接口传输速率
- Oracle的redolog:连续的随机IO。一个很贴切的说法。小于5ms是比较合理的。
- Oracle的datalog:小于10ms是合理的。
- 对Oracle数据库而言,CPU和IO时间外的其他等待事件应该小于5%
Topic 3:NoSQL数据库研发之路
对应NoSQL个人了解不是太多,讲的又是ttserver这种具体的应用。没记下什么东西。感觉一直在说的一个问题是,NoSQL产品很多,各自特性不同,需要根据自己的业务特点来选取适合自己的产品。
Topic 4:淘宝分布式数据层的前世今生
一个很好的东西,解决了Oralce数据到MySQL数据的复制问题。
- 简称tddl
- 重写的JDBC部分,加入的数据复制、数据拆分的功能
- 接管了上层应用的SQL请求,由他负责进行和不同数据源交互
- 实现了基于自定义规则的数据拆分
- 使用了消息通知的异步方式进行数据复制(写入或更新成功后发送消息),由专门的服务器完成后续复制
这篇关于淘宝iDataForum归来的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!