淘宝数据库架构演进过程课件.pptVIP

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

淘宝数据库架构演进过程丹臣/赵林数据架构师

提纲l淘宝数据库发展的三个阶段l用户,商品,交易现在的架构l2010双11大促的挑战lMySQL源代码研究的一些思路l淘宝自主数据库Oceanbase原理介绍

淘宝的数据很美丽

淘宝数据库发展三阶段

SQL语句变化SQL语句复杂程度由繁到简的过程,折射出淘宝数据架构的一些变化。单表复杂查询多表关联主键查询

淘宝电子商务网站的特点l高并发,PV13亿,光棍节促销PV达到了17亿l数据实时性要求高l数据准确性要求高l大多数页面属于动态网页l网站需要大量商品图片展示l用户通过搜索引擎,广告,类目导航寻找商品l网站读多写少,比例超过10:1l卖家相关的数据量较大,比如商品数,评价数l业务量快速增长

不同的时期,不同的策略正是因为如上的业务特点:l早期的淘宝前端应用系统,严重依赖于数据库系统l早期单机式的mysql的使用方式,在业务的高速发展下,很快达到瓶颈lMysql迁移到Oracle,并升级到小型机,高端存储后,几年的时间里,满足了淘宝业务快速变化发展的需要。l我们的业务发展很快,但我们的技术没有成长

数据库里的数据第一,二阶段的单台数据库里,用户,商品,交易等数据都在一起,存在许多的关联查询,应用完全耦合用户收藏商品评价交易

连接数问题小型机的内存有限,发现了Oracle数据库有连接数瓶颈,5000个以后相当吃力。太多的应用机器有限的链接池需要数据库连接Oracle数据库

中心化,服务化l用户,商品,交易三大中心的建设

HSF的诞生l中心化后面临另一个问题,服务调用者,与服务者之间如何进行远程通信,淘宝HSF诞生,数据库一些OLTPjoin问题解决。HSF

数据垂直化l应用中心化之后,底层数据库系统按照不同的业务数据进行了一系列的垂直拆分.此类拆分方式具有如下的特点:a.拆分方式简单,只需要把不同的业务数据进行分离b.避免了不同的业务数据读写操作时的相互影响c.该业务内部及其所导致的问题依旧用户商品交易评价

问题l单库IOPS3wl单库连接数已经4k个了,应用还在不断加机器?l单库每秒SQL执行次数到4w次l搜索dump数据缓慢,DWETL缓慢?用硬盘来拼IOPS?

一台高端存储的处理能力480块盘的hdisk,maxIOPS6w注意应用可以接受的IOresponsetime,以及IOPS点。比如3wIOPS以上,会达到20ms以上

数据库架构发展新思路异构数据库读写分离原始架构图(08年8月份):

异构的读写分离a.写库为集中式的oracle环境,提供数据安全性保障b.读库使用mysql,采用数据分片,分库分表,每台mysql放少量的数据,单个数据分片内部采用mysql复制机制c.读库的超大memory容量,起到了很好的cache作用,在内存中的数据查询性能远远高于在硬盘上的性能d.oracle到多台mysql按规则复制,由TDDL完成e.分区键的选择至关重要,尽量让数据访问落在单台数据库上g.利用好当前的高端硬件,保护好自己的投资

构建数据查询的高速公路l应用到DB的数据写入与查询从双向通行变成了单向通行,通行效率更高,大大避免了相互影响。“借道行驶”的情况不再出现。

跨不过去的坎l为什么不直接迁到MySQL上面去呢?a.对于核心业务,停机时间有限,宠大的数据无法短时间内迁移b.无法在短时间内完成项目发布过程中的测试c.没有搞过mysql分布式系统,对完全使用MySQL还没有信心

大数据量核心业务数据迁移思路采用两步走战略,不仅走得稳,而且走得好:l先采用异构的数据库读写分离,将数据复制到目标mysql各结点,不断切换应用相关的读服务到mysql结点上,验证可靠性,机器压力,服务响应时间l将写压力从oracle结点迁移到mysql各结点,oracle停止写对于一些不太核心,业务不太复杂,相关影响点不多的数据,可以直接进行迁移。

水库模型你的系统可以撑多少?系统余量还有多少?

数据库系统余量两轮测试过程,确保上线稳定:l底层数据库环境性能,稳定性的基础测试,常用的工具可以采用sysbench,orion,supersmackl选择不同的硬件,软件组合,模拟应用的压力测试,要超越当前业务压力的几倍进行,这个压力的幅度可以根据自己的业务增长设计一个合理的值。我们如何做到用数据来说话?靠测试拿数据,不靠经验

数据库系统余量

数据生命周期之历史迁移商品,交易,评价,物流等数据都有自己的生命周期。通过数据历OnlineData史迁移,减少在线库的容量,提高在线库的性能。DataHistoryData

在线与历史应用分离在线库与历史库重要等到级不同,在线库更高同一应用的在线应用与历史应用分离高级

文档评论(0)

158****9949 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体成都林辰禄信息科技有限公司
IP属地四川
统一社会信用代码/组织机构代码
91510104MA64LRAJ9H

1亿VIP精品文档

相关文档