RDS

阿里云关系型数据库(Relational Database Service,简称RDS),是一种稳定可靠、可弹性伸缩的在线数据库服务。
基于阿里云分布式文件系统和高性能存储,RDS支持MySQL、SQL Server、PostgreSQL和PPAS(Postgre Plus Advanced Server,一种高度兼容Oracle的数据库)引擎,并且提供容灾、备份、恢复、监控、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。
RDS for MySQL可以认为是云上的MySQL。

DRDS

分布式关系型数据库服务(Distributed Relational Database Service,简称DRDS)是阿里致力于解决单机数据库服务瓶颈问题而自主研发的分布式数据库产品。DRDS高度兼容MySQL协议和语法,支持自动化水平拆分、在线平滑扩缩容、弹性扩展、透明读写分享,具备数据库全生命周期运维管控能力。
DRDS前身为淘宝TDDL,可以认为是云上的TDDL中间件。DRDS必须依赖RDS。

PolarDB

PolarDB是云原生数据库,计算与存储分离,数据存储在分布式文件系统上。RDS的数据存储在本地盘或者云盘上。
PolarDB对比RDS,做了一些优化以提升性能:

  • 采用领先硬件技术,包括使用3DXpoint存储介质的Optane存储卡、NVMeSSD的RoCE RDMA网络等。
  • 基于新的硬件,实现一整套在用户态运行的IO和网络协议栈,获得更高的性能、更低的延迟。
  • 通过锁优化、IO路径优化、针对大表优化等内核层面的优化,实现并发场景下的更优性能。

PolarDB的架构如下,总体可以分为两层,即计算层和存储层,计算层采用一个读写节点+最多15个只读节点可以实现读写分离,存储层采用基于ParallelRaft的多副本共享存储。可以认为RDS是PolarDB 1.0,而现在的PolarDB是PolarDB 2.0。

PolarDB-X

DRDS可以看成是PolarDB-X 1.0,而现在的PolarDB-X为PolarDB-X 2.0。
DRDS本质是一个阿里云上的分库分表中间件,具有很高的灵活性。而PolarDB-X是使用云原生技术的分布式数据库,具有一体化的数据库体验,存储节点是经过高度定制的MySQL,从而提供了大量中间件无法提供的如分布式事务等能力。

PolarDB-X与DRDS的几点区别有:

  • PolarDB-X使用X-DB作为数据节点,X-DB使用Paxos一致性共识协议进行多副本复制。
  • PlarDB-X相比DRDS引入一个新的组件GMS(Global Meta Service),提供分布式事务所使用的全局自增时间戳,根据负载情况调度数据的分布使节点之间达到均衡,提供统一的元数据等。
  • DRDS扩容基于Binlog,依赖外围管控系统完成。PolarDB-X扩容基于分布式事务,由内核完成。
  • DRDS的RDS是传统的主备架构,正常情况下备库不提供服务,PolarDB-X下的数据节点以分片为单位,一个节点可以同时是一个分片的Leader与另一个分片的Follower,资源利用率更高。
  • 在事务实现上,DRDS使用MySQL官方提供的XA事务,可以保证写入操作的原子性,但是存在的问题是可能会在一个分片读到已提交的数据在另一个分片上读到未提交的数据。为了解决这一问题,DRDS使用加锁的方式,在冲突多的情况下有比较高的代价。PolarDB-X使用自研的全局MVCC事务,在两阶段提交的基础上,增加了事务快照时间戳和提交时间戳的支持。时间戳来自于全局TSO的分配,因此做到外部一致的事务保证,并且避免了额外的加锁。
  • 在性能上,DRDS连接RDS使用的是RDS标准的访问链路,中间需要经过SLB中转,会增加一跳的网络延迟,PolarDB-X的CN与DN是点对点直连。第二点,DRDS使用标准的MySQL协议连接RDS,导致有不少开销,PolarDB-X对MySQL进行大量定制,中间的通信用私有的RPC协议,提升了性能。对OLAP查询,DRDS使用的是SMP(单机并行)技术,PolarDB-X使用的是MPP(多机并行)技术。

RDSDRDSPolarDBPolarDB-X的区别相关推荐

  1. RPC 笔记(01)— RPC概念、调用流程、RPC 与 Restful API 区别

    1. 基本概念 PRC 远程过程调用 Remote Procedure Call,其就是一个节点请求另外一个节点提供的服务.当两个物理分离的子系统需要建立逻辑上的关联时,RPC 是牵线搭桥的常见技术手 ...

  2. C++ 笔记(28)— C++ 中 NULL和 nullptr 的区别

    最近看公司代码的时候发现在判断指针是否为空的时候,有的时候用的是 NULL, 有的时候用的是 nullptr 感觉很奇怪,好奇心驱使我查了下两者的区别,发现还是有很多细节需要学习的. 1. NULL ...

  3. gcc 和 g++ 的联系和区别,使用 gcc 编译 c++

    GCC 编译器已经为我们提供了调用它的接口,对于 C 语言或者 C++ 程序,可以通过执行 gcc 或者 g++ 指令来调用 GCC 编译器. 实际使用中我们更习惯使用 gcc 指令编译 C 语言程序 ...

  4. Python2 与 Python3 区别

    Python2.x 与 Python3.x 区别 1. print 函数 Python2 中 print 是语句(statement),Python3 中 print 则变成了函数.在 Python3 ...

  5. Docker 入门系列(1)- 初识容器,镜像、容器、仓库的区别

    Docker 简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发 ...

  6. HTTP 协议入门 — (TCP/IP协议族、通信传输流、URI 与 URL 的区别、Cookie 状态管理、HTTP 支持的方法、状态码类别、HTTP 首部字段)

    TCP/IP协议族 在介绍 HTTP 协议之前,我们先对 TCP/IP 协议族有个大概的了解,TCP/IP 协议从上到下主要分为应用层.传输层.网络层和数据链路层,各层的主要功能如下表所示: 协议层 ...

  7. python二进制打开(rb)和文本格式打开(r)什么区别?

    使用 open() 函数以文本格式打开文件和以二进制格式打开文件,唯一的区别是对文件中换行符的处理不同. 在 Windows 系统中,文件中用 "\r\n" 作为行末标识符(即换行 ...

  8. python中__dict__与dir()区别

    前言 Python下一切皆对象,每个对象都有多个属性(attribute),Python对属性有一套统一的管理方案. __dict__与dir()的区别: dir()是一个函数,返回的是list: _ ...

  9. java和C#面向对象的区别

    问题:C#中的构造函数和java的构造函数一样吗? 答: .net的项目中,写实体Entity属性时,经常会为每一个属性写一对get和set方法,在用到这个实体或是一个类时,通过new实例化一个对象, ...

  10. 判别模型和生成模型的区别

    20210703 https://www.zhihu.com/question/20446337 机器学习"判定模型"和"生成模型"有什么区别? 重点 http ...

最新文章

  1. 最新电子皮肤的触觉有多灵?连空气流动都能感受到
  2. redis启动后 允许访问_解决Redis开启远程访问及密码问题
  3. 使用.Net图表开发工具JDash.Net添加组件
  4. [mybatis]动态sql_set_与if结合的动态更新
  5. springboot-Initializer例子及分析
  6. 自定义Toast 很简单就可以达到一些对话框的效果 使用起来很方便
  7. [转载]Bluetooth协议栈学习之SDP
  8. sata接口测试软件,如何查看电脑是否支持USB 3.0?Hwinfo32检测SATA端口的方法
  9. SpringBoot-从入门到放弃(二) 开发环境的搭建
  10. hdu-1088 Write a simple HTML Browser
  11. MyCat双机HA高可用集群搭建_HAProxy安装和配置---MyCat分布式数据库集群架构工作笔记0028
  12. log4cpp 用法
  13. IOS之xib计算cell的高度
  14. hibernate java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z
  15. Unity敏感词屏蔽
  16. 根据用户输入的Email跳转到相应的邮箱登录页面【蕃薯耀分享】
  17. 曙光服务器重装系统centos7.9
  18. Java反射底层原理以及应用
  19. 从零开始之uboot、移植uboot2017.01(四、uboot的重定位)
  20. 了解多线程并通过Python程序实现多线程解决资源竞争、死锁等问题【非常详细】

热门文章

  1. vue动态生成html元素,Vue.js中的动态html元素
  2. Python打印空心等腰三角形
  3. 中国商用清洁机器人产业“十四五”规划展望及项目可行性分析报告2021-2027年
  4. day21Java-常用对象网络编程Socket-TCP协议
  5. 从智能家居产业透视实体经济多元化之辩
  6. 太空飞行计划LibreOJ - 6001(网络流24题)(最大权闭合图)
  7. 【秃头系列】-【本科生毕设论文格式Word】自动生成页面布局
  8. 气象学需要计算机知识吗,应用气象学专业学什么 附学习科目和课程
  9. 程序员业余项目死亡的原因
  10. 数据库 6---SQL语言概述