`

淘宝的数据拆分历程

    博客分类:
  • SQL
 
阅读更多
摘自:
http://blog.csdn.net/imcxin/article/details/7298757
淘宝的数据拆分历程

系统刚开始的时候,用户数量不多,所有的数据都放在了同一个数据库中,此时因为用户少压力小,一个数据库完全可以应付的了。但是随着用户数量不断增加,数据库压力也与日俱增,它终于在某一天大家都和惬意的时候挂掉啦。此时是到了读写分离的时候,这个时候我们会配置一个server为master节点,然后配几个salve节点,这样以来通过读写分离,使得读取数据的压力分摊到了不同的salve节点上面,系统终于又恢复了正常,开始正常运行了。但是好景还是不长,有一天我们发现master撑不住了,负载很高,随时都有挂掉的风险,这个时候就需要进行垂直拆分啦(也就是所谓的分库),比如将商品信息、用户信息、交易信息分别存储到不同的数据库中,同时还可以针对商品信息的库采用master/salve模式,OK, 通过分库以后,各个按照功能拆分的数据库写压力被分担到了不同的server上面,这样数据库的压力终于有恢复到正常状态。但是不是这样,我们就可以高枕无忧了呢?NO,通过前辈们的经验总结显示,随着用户量的不断增加,你会发现系统中的某些数据表会变的异常庞大,比如好友关系表,店铺的参数配置表等,此时无论论是写入还是读取这些表的数据,对数据库来说都是一个很耗费精力的事情,因此此时就需要我们进行“水平拆分”了(这就是俗话说的分表,或者说sharding)。
上面的阐述,无非就是告诉大家一个事实“数据库是系统中最不容易scale out的一层”,一个大型的互联网应用必然会经过一个从单一DB server, 到Master/salve, 再到垂直分区(分库),然后再到水平分区(分表即sharding)的过程,而在这个过程中,Master/salve 以及垂直分区相对比较容易,对应用的影响也不是很大,但是分表会引起一些棘手的问题,比如不能跨越多个分区join查询数据,如何平衡各个shards的负载等等,这个时候就需要一个通用的DAL框架来屏蔽底层数据存储对应用逻辑的影响,使得底层数据的访问对应用透明化。
拿淘宝目前的情况来说,淘宝目前也正在从昂贵的高端存储(小型机+ORACLE)切换到MYSQL, 切换到MYSQL以后,势必会遇到垂直分区(分库)以及水平分区(Sharding)的问题,因此目前淘宝根据自己的业务特点也开发了自己的TDDL框架,此框架主要解决了分库分表对应用的透明化以及异构数据库之间的数据复制问题。
分享到:
评论

相关推荐

    互联网公司技术架构资料.淘宝.数据库架构演进历程

    为了应对大数据分析的需求,淘宝搭建了基于Hadoop的大数据处理平台,利用MapReduce进行离线分析,并结合Spark进行实时流处理,提供了强大的数据分析能力。这些技术的运用,使得淘宝能够对用户行为进行深度挖掘,从而...

    淘宝在线数据演变PPT

    淘宝在线交易数据的演变历程 - **2003~2008年**:淘宝的数据库体系从MySQL过渡到了Oracle,这一变化主要受到业务量增长的驱动。初期,业务规模较小,MySQL足以应对需求;然而,随着交易量的激增,特别是在2008年...

    京东JDOS平台与敏捷数据中心探索历程.rar

    《京东JDOS平台与敏捷数据中心探索历程》是一个深入探讨IT行业技术实践的案例,主要聚焦在大数据处理和数据中心管理的创新。在这个压缩包中,我们可以找到一个名为“京东JDOS平台与敏捷数据中心探索历程.pdf”的文件...

    淘宝电商架构的发展历程

    淘宝作为中国最大的电商平台,其架构的发展历程堪称中国互联网技术演进的一个缩影。自2003年成立以来,淘宝经历了从初创时期的简单架构到如今的复杂分布式系统转变,这一过程充满了技术创新与挑战解决。以下是对淘宝...

    淘宝分布式数据层.pdf

    淘宝分布式数据层的发展历程展示了如何从传统架构向分布式架构转型的过程。通过不断的技术创新和服务化改造,不仅解决了业务核心稳定性和一致性的挑战,还有效地解决了数据库连接数的限制问题。这一过程中的关键技术...

    淘宝数据库架构演进历程

    - **智能运维**:借助大数据分析和人工智能技术,实现数据库的智能监控和自动优化。 #### 五、关键技术与工具 在淘宝数据库架构的演进过程中,使用了一系列关键技术与工具来支撑不同阶段的需求: - **MySQL**:...

    淘宝数据库架构演进历程及OceanBase架构PPT学习教案.pptx

    - **分布式阶段**:为应对高并发和数据量激增,淘宝进行了数据的垂直拆分、中心化和服务化,引入HSF解决远程通信问题,并采用读写分离策略,进一步优化性能。 2. **业务特点驱动架构演变**: - **高并发需求**:...

    数据仓库ETL

    在企业信息系统(EIS)和管理信息系统(MIS)的发展历程中,数据仓库的概念逐渐形成,从而支持了所谓的决策支持系统(DSS)。 从【描述】来看,我们学习的重点是ETL技术原理以及它在商业智能中的应用。ETL是数据...

    淘宝在线交易数据演变专题培训课件.ppt

    此外,数据库架构的调整,如库的拆分,也是为了更好地支持高并发和大数据量的处理。 总的来说,淘宝在线交易数据演变专题培训课件揭示了电商平台如何应对业务增长挑战,如何优化数据库架构以提升系统性能,以及如何...

    4-4+Apache+Flink发展历程和在阿里巴巴的实践.pdf

    Apache Flink,作为大数据处理领域的重要成员,其发展历程和在阿里巴巴的应用实践,对于理解现代大数据处理技术具有重要意义。本文将深入探讨Flink的技术演进、核心特性以及在阿里巴巴集团的实际应用。 Flink的起源...

    云计算技术在计算机数据处理中的应用——评《基于云计算的大数据处理技术发展与应用》.pdf

    在《基于云计算的大数据处理技术发展与应用》一书中,作者申时凯、余玉梅深入探讨了云计算在大数据处理中的应用。该书内容广泛,共分为八章,涵盖了云计算技术概述、大数据发展现状、数据获取、数据挖掘、机器学习...

    淘宝框架历程

    ### 淘宝框架历程与关键技术变迁 #### 一、早期创业阶段与LAMP架构的选择 淘宝成立于2003年,初期面临巨大的时间和资源挑战。为了快速搭建平台,淘宝团队选择购买了一款名为PHPAuction的开源软件,并在此基础上...

    淘宝_for_iOS_历程

    在处理视图和数据时,Controller内的逻辑被合理拆分,实现了真正的模块化开发。 ### 经验分享 关于内存管理,徐基伟特别提到了循环引用的问题,强调了正确处理viewDidLoad和viewDidUnload的重要性,以及在适当时候...

    电子政务-可拆分电缆抱箍.zip

    3. **智慧城市建设**:探讨可拆分电缆抱箍与智慧城市概念的结合,如何通过大数据分析优化设备维护策略,提升城市管理水平。 4. **政务流程优化**:介绍电子政务如何简化传统电缆设施的审批、采购和维护流程,提高...

    数据挖掘与数据分析应用案例 数据挖掘算法实践 基于C++的垃圾邮件判别.doc

    **1.2 数据挖掘的发展历程** 随着互联网技术的进步和社会信息化水平的提高,数据量呈现出爆炸式增长的趋势。面对如此庞大且复杂的数据集,传统的数据分析方法逐渐显得力不从心。数据挖掘技术应运而生,通过先进的...

    豆瓣网技术架构的发展历程

    在数据分析上,可能运用了Hadoop和Spark等大数据处理框架,进行离线和实时分析,为推荐算法提供支持。 在分布式系统层面,豆瓣网可能会采用微服务架构,将复杂的应用拆分为一系列小型、独立的服务,每个服务都专注...

    大数据、人工智能与容器云计算走向深度融合的数据云时代.pdf

    同时,大数据处理技术与深度学习等人工智能技术相结合,产生了新的应用场景和解决方案。云计算平台也被用于部署分布式大数据架构,以实现更高效的资源利用和更好的数据共享。 2. 人工智能在大数据中的应用 人工智能...

    IAS2017- 大型支付交易平台的演进历程.pdf

    应对这一挑战的方法包括X轴扩展(应用克隆)、Y轴扩展(服务拆分)和Z轴扩展(数据拆分)。X轴扩展是通过增加服务器数量来提高处理能力;Y轴扩展则是将应用拆分成不同的服务模块,以分散负载;Z轴扩展则涉及数据库的...

    综合介绍了Paxos和Raft算法

    分布式数据库的基本思想是将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储节点上,以获得更大的存储容量和更高的并发访问量。 阿里巴巴DRDS数据库分布式关系型数据库服务(Distributed Relational...

    【推荐】潘志伟-从单体到微服务再到中台战略的历程

    在早期的软件开发中,应用程序通常采用单体架构,即所有的功能模块都集中在一个大的可执行文件或项目中。这种架构简单易懂,但随着业务复杂性和规模的增长,单体架构的缺点逐渐暴露,如维护困难、扩展性差、部署复杂...

Global site tag (gtag.js) - Google Analytics