阿里分布式数据库服务实践

云学习小组 2015-12-13 14:31:53 浏览14119

沈询: 阿里巴巴资深技术专家,08年加入阿里巴巴,一直从事阿里分布式数据层方面的研发工作,参与了公司大部分的去IOE工作,具备较多实操经验。目前主要负责淘宝分布式数据层(TDDL),阿里分布式数据库服务(DRDS),阿里分布式消息服务(Notify,MetaQ)的开发和架构设计工作。

经过近一年的运营,阿里巴巴的分布式数据库(DRDS)已经协助电商,电信,银行,政府等多种类型的系统进行过业务分布式改造,在系统实施的过程中,我们碰到和解决了哪些问题? 他们是怎么解决的?背后的思考是什么?未来在何方? 以下来分享下精彩内容。

DRDS简介

起源

DRDS 脱胎于 alibaba的cobra 分布式数据库引擎06年上线使用,在alibaba有近百应用在使用,目前已经开源,DRDS的80%的代码出自cobra proxySql解析器,执行流程配置)。

DRDS吸收了taobao TDDL分布式数据库引擎的大量优秀经验和解决方案,08年上线使用,目前在使用的应用近千个,大量实际应用解决方案支持分布式join,支持分布式aggregation (group sum max min),支持异步索引构建,支持Auto sharding ,自动扩容缩容。

从TDDL到DRDS,

DRDS专门针对外部用户进行了配置的重新设计:简化了配置操作规范与流程;尽可能使得应用像操作一个数据库一样的操作DRDS;用户的专业化指导。

场景广泛:互联网应用,企业内大数据应用,政务类应用,物联网应用。

应用场景

应用的业务需求单机已经无法满足,一个RDS数据库的最大实例也无法满足用户的需求,可能遇到容量瓶颈、事务数瓶颈、读取瓶颈,我们就可以考虑使用分布式数据库了。

Scale out(多机水平扩展),使用廉价数据库阵列来满足用户需求—DRDS。

优势:更轻量的使用数据库,未来更换的成本小;一次重构,以后基本再无需担心系统瓶颈。劣势:重构迁移需要付出成本;分布式环境下一些查询会被限制不允许执行;完成相同功能需要比单机扩展付出更多成本。

图1

理想状态就是Scale out 与scale up结合。如图1所示,让系统架构具备scale out的能力,尽可能提升单机利用率,但不要过早过度设计。

图2

何时应该选择Sharding方案?图2中的概要图给出了分析。

DRDS功能介绍

分布式MySQL执行引擎

具有非常高的兼容性,MySQL 5.5 的各类复杂查询都能做到,包括复杂的join,复杂的嵌套,复杂的函数。降低了迁移时候的成本。

智能下推的功能,减少网络传输,减少计算量,充分发挥下层存储的全部能力。

智能下推有两个典型的例子,图3为表A 分库分表3个的例子,图4为全表distinct groupby的执行计划的例子。

图3

图4

 

弹性扩展

  自动扩容、缩容是另外一个重要功能。如图5,DRDS可以做到原来一个库,下一步变成两个库,依然可以扩,对一些特殊需求也可以实现自动化后台迁移,自动扩容缩容。

图5

小表异步广播

  图6

  如图6的跨机join的优势是一致性,空间比较节省。劣势是网络消耗和延迟增加。

图7

图7小表广播join的优势是性能高,延迟低,网络消耗小,劣势是最终一致性,小表更新量不能太巨大。

DRDS实践

分布式查询优化

最终的目标是让所有请求可以水平扩展,要想达到这个目的,有两个基本的原则:1尽可能让所有查询发生在尽可能少的下层存储节点上,最好是只发生在一台上。将跨网络请求尽可能减少,减少并行查询时的机器消耗。2选择的shardingKey要能够让所有存储节点均衡的负载读写请求。系统可以简单加机器来扩展,没有系统瓶颈。案例1如图8所示是一个订单的场景,应该选择哪个列作为切分条件?按照买家ID的查询(买家查看自己买了哪些商品)。

图8

案例2如图9所示的过程就是数据的切分,应该选择哪个列作为切分条件?按照买家ID的查询(买家查看自己买了哪些商品);按照卖家ID的查询(卖家查看自己卖了哪些商品。

图9

图10表达了异构复制,数据通过后台自动化逻辑复制过去,建立一个新的全表索引。

图10

案例三如图11所示,在原来表里加了type,关联两个表,但这两个表不在一台机器上,遇到这种场景就需要如图12所示的小表异步广播。

图11

图12

事务的分布式优化

  事务的分布式优化的目标是完整的事务支持,既要支持ACID,又可按需无限拓展。然而这种模型是不可能实现的。

那么我们该怎么办呢?优化事务的最重要的手段就是从强一致到最终一致。把这种情况拟人化场景为:李雷家住长江头,梅梅家住长江尾,日日思君不见君,送只玫瑰表心意。李雷希望(ACID):花别丢了,送不到给我退回来(原子性,A);花能瞬时送到梅梅家(强一致性和强隔离性,C&I);花别在路上坏了(D)。其中瞬时就是当李雷去检查的时候,要么花在李雷那,要么花在韩梅梅那。

实现方案一:李雷做火车到长江尾,亲手交给了梅梅。方案二:李雷将花交给邮递员,邮递员做飞机把花送给韩梅梅,李雷电话打了一天,韩梅梅都没接,邮递员把花交给韩梅梅,韩梅梅接起电话,告诉李雷收到花。方案二就是强一致,它的优势是编程模型简单,不用考虑邮递员运输中的各种并发问题。它的劣势是并发性能低,李雷一天都不用干活了。

真的遇到这种情况时,我们该采用最终一致进行优化,上述情景大体不变,更改为李雷打电话韩梅梅告诉他还没收到,李雷就去做了其他事情。最终一致的优势是无阻塞情况,并发性能好。劣势是复杂度略高,需要考虑玫瑰已经发出,但对方还没收到的情况应该如何处理。

图13展现了单机和分布式事务情况。所以我们建议结合最终一致和强一致,单机可以使用强一致,跨机建议使用最终一致。

图13

 

从单机存储到DRDS迁移流程

迁移的目标是:保证业务线上正常运转;平滑过渡;减少运维。

迁移的步骤有三步:SETP1:读写在原来的单机数据库;数据通过“愚公数据迁移平台”写入云上DRDS。SETP2:验证云上数据是否正确;验证云上DRDS是否能够很好的应对读流量压力。SETP3:夜间,停写几分钟;读写切换到DRDS;数据通过“愚公数据迁移平台”写回到云下单机数据库。

PPT下载地址:http://club.alibabatech.org/resource_detail.htm?topicId=156

本文首发在云栖社区,遵循云栖社区版权声明:本文内容由互联网用户自发贡献,版权归用户作者所有,云栖社区不为本文内容承担相关法律责任。云栖社区已在2020年6月升级到阿里云开发者社区。如果您发现有涉嫌抄袭的内容,请填写侵权投诉表单进行举报,一经查实,阿里云开发者社区将协助删除涉嫌侵权内容。

阿里分布式数据库服务实践相关推荐

  1. 阿里分布式数据库服务相关介绍

    TDDL研发淘宝的历史和背景 淘宝DRDS/TDDL是阿里巴巴自主开发的阿里分布式数据库服务.DRDS脱胎于阿里巴巴开源的Cobar分布式数据库引擎,吸收了Cobar核心的Cobar-Proxy源代码 ...

  2. 全网疯传,阿里 P8 技术官的架构笔记外泄:微服务分布式架构实践手册

    前言 阿里 P8 大佬的架构笔记:微服务分布式架构实践手册从企业的真实需求出发,理论结合实际,深入讲解 Spring Cloud 微服务和分布式系统的知识. 整份笔记共分为 4 部分: 第一部分:概述 ...

  3. 飞天开放平台编程指南——阿里云计算的实践(双色)

    飞天开放平台编程指南--阿里云计算的实践(双色) 周憬宇,李武军,过敏意编著 ISBN 978-7-121-19699-7 2013年3月出版 定价:59.00元 256页 16开 内容提要 飞天开放 ...

  4. 谷歌新发布的分布式数据库服务,是要打破CAP定理了吗?

    谷歌新发布的分布式数据库服务,是要打破CAP定理了吗? 本来来自:Original 2017-02-19 作者|登州知府 2月14日,Google 宣布推出 Cloud Spanner 云端数据库服务 ...

  5. 华为微认证华为云数据库服务实践稳过 笔记资料

    华为云数据库服务实践 文章目录 华为云数据库服务实践 关键RDS服务介绍 RDS云服务概述和关键技术 自测题 常见考题 DDM DRS DAS GaussDB RDS 关键RDS服务介绍 RDS云服务 ...

  6. 阿里巴巴分布式数据库服务DRDS

    阿里巴巴分布式数据库服务DRDS 淘宝TDDL研发历史和背景 淘宝DRDS/TDDL是阿里巴巴自主研发的分布式数据库服务.DRDS脱胎于阿里巴巴开源的Cobar分布式数据库引擎,吸收了Cobar核心的 ...

  7. 小微企业阿里云最佳实践系列(二):RDS 数据库与DMS 数据库管理(数据管理)...

    关联博文 小微企业阿里云最佳实践系列(一):ECS 服务器与 RDS 数据库 概述 阅读对象 本博文主要写给创业团队.技术团队人数 < 5 人.没有专业运维等小微企业作为参考,需要掌握基础的服务 ...

  8. 小微企业阿里云最佳实践系列(二):RDS 数据库与DMS 数据库管理(数据管理)... 1

    关联博文 小微企业阿里云最佳实践系列(一):ECS 服务器与 RDS 数据库 概述 阅读对象 本博文主要写给创业团队.技术团队人数 < 5 人.没有专业运维等小微企业作为参考,需要掌握基础的服务 ...

  9. 民生银行核心分布式改造实践分享

    摘要:在没有分布式技术之前,国内银行的核心系统面临着很多挑战.以民生银行为例,2013年的时候每天交易量约1800万笔,整个项目的硬件和运维投入达到1.1亿多,成本非常高昂.中国民生银行总行信息科技部 ...

最新文章

  1. 一般将来时语法课教案_「英语语法」一般过去时用法技巧全解
  2. 浅析新站SEO和老站优化推广有哪些区别?
  3. 用掘金-Markdown 编辑器写文章
  4. Qt QProces的使用
  5. 【J2SE】java实现简单照片查看器
  6. 奇文:金庸小说中的第一高手是谁?
  7. 不惑网络人细数应用交付发展史(二)- 一枝独大
  8. textbox wpf 居中_WPF TextBox控件中文字实现垂直居中
  9. jdk11下载与安装教程(win10)超详细
  10. jsp数据库中文乱码处理
  11. 参数篡改(Parameter Tampering)
  12. c语言switch猜拳游戏,js回顾,用if语句,和switch语句来编写猜拳小游戏。
  13. d3.js 旋转图形_知识地图丨小学数学要学习哪些几何图形?
  14. 【游戏逆向】游戏玩家技能冷却分析
  15. 基于snipe-it v5.1.2开源资产管理软件二次开发安卓端管理app
  16. 有没有好用的证件照生成器?教你一键生成证件照
  17. 计算机中 8位无符号数,8位无符号数乘法运算HDL设计实例 - 全文
  18. 哈工大计算机网络物理层总结
  19. 放弃数学专业跳槽高薪行业,如今他却后悔了
  20. IOT物联网,如何上传正确的消息推送证书到第三方平台

热门文章

  1. Consecutive Factors (20)
  2. bp神经网络测试_BP 神经网络驱动的手写体数字识别软件 EasyOCR
  3. gzdeflate函数_PHP中的gzcompress、gzdeflate、gzencode函数详解_php实例
  4. linux 蓝牙攻击,研究人员担心BleedingTooth蓝牙漏洞给Linux系统带来风险
  5. matlab y2=sin(3t)exp(-t/3);,Matlab-期末考试题库(共12套卷)
  6. java mvc页面传值方式_详解SpringMVC的ModelAndView传值方法
  7. (1~2):C实现数组求和,求平均值,求最大值,最小值
  8. C++新特性探究(五):for循环、范围for语句
  9. windows server2008服务器文件上传受限制怎么办,windows server 2008 服务器上传限制
  10. java 操作vss,java开发常用工具总结,java开发常用工具