一、出现的背景及PolarDB简介

阿里云,中国第一家拥有完整云计算能力的企业。

2015年,在计算界的奥运会Sort Benchmark中,阿里云计算100TB数据排序只用了不到7分钟,把ApacheSpark之前创造的23分钟世界纪录一下子缩短了一多半。这说明,中国人研发的云计算系统不仅成功了, 而且不比世界上任何现存的云计算系统差。

成功登顶的“云梯2”,后来更名为ODPS,“加冕”成为了阿里巴巴各项业务通用的大数据计算平台。ODPS验证成功之后,阿里立刻启动“登月计划”,把所有数据和计算都迁移到飞天为基础的系统上,全盘替代IOE和云梯1。2013年5月,阿里巴巴最后一台小型机下线。7月,淘宝最后一个Oracle数据库下线。阿里巴巴这台战车,用了五年时间,在超高速行驶中,没有踩一脚刹车,成功更换了发动机。因为突破了技术瓶颈,在5K之后,ODPS只用了几个月就冲上了单机群10K,进而实现了无限制扩展。到2018年,已经更名为MaxCompute的ODPS达到了数万台的规模。

在芯片领域,我们面对美国垄断只得眼睁睁地静默。

在操作系统领域,我们面对美国的背影只能艰难追赶。

但是在云计算这片土地上,从王坚带着一群理想主义者横空出世,到胡晓明把商业战场拉至和亚马逊的AWS同一级别。中国人用了十年时间造出的全球第三、亚洲第一的阿里云,不说和美国战位和棋,至少在世界的版图上夺下了堪为广袤的一片疆土。

2018年,当年为阿里云对接淘宝立下汗马功劳的小邪正式加入阿里云,掌管“飞天八部”,阿里云所有的现役主力和技术,都归至他麾下。此时小邪nian中的弹药充足:2017年发布的神龙云服务器,是对下一代云计算主机的探索。同年发布的PolarDB,剑指商业数据库Oracle和它的继任者MySQL,也称得上是阿里云未来之星。2018年初,飞天的分布式存储系统“盘古”升级到了2.0,成为了阿里巴巴统一存储平台。2018年秋天的云栖大会上,唐洪、小邪、何导等阿里云大咖系数登场,发布了飞天2.0。敢称2.0,是因为他们把野心放到了“万互联”的下一个20年。如此尝试和未来对话的技术还有很多。

其中,PolarDB是阿里云自研的下一代关系型云数据库,100%兼容MySQL,存储容量最高可达100TB,性能最高提升至MySQL的6倍,单库最多可扩展到16个节点,使用与企业多样化的数据库应用场景。PolarDB采用存储和计算分离的架构,所有计算节点共享一份数据,提供分钟级的配置升降级、秒级的故障恢复、全局数据一致性和免费的数据备份容灾服务。PolarDB既融合了商业数据库稳定可靠、高性能、可扩展的特性,又具有开源云数据库简单开放、自我迭代的优势,而成本只有商用数据库的1/10。

二、PolarDB优势分析

1.简单易用:100%兼容MySQL。在已有的使用MySQL数据库的应用程序代码、驱动无需更改,即可运行于PolarDB。

2.极致性能,降低成本:(1)针对数据库内核进行深度优化,同时采用物理复制、RDMA高速网络和分布式共享存储,读性能最高能达到MySQL的6倍;(2)集群包含一个主节点和最多15个只读节点,满足高并发场景对性能的要去,尤其适用于读多写少的场景。

3.超大容量,支持上百TB级别数据:采用分布式块存储设计和文件系统,使得存储容量不限制于单节点的规格,能够轻松扩展,应对上百TB级别的数据规模。

4.快速弹性,应对不确定的业务增长:(1)Serverless存储,存储空间无需手动配置,根据数据量自动伸缩,用户只需为实际使用的数据库容量付费;(2)配置降级,3分钟生效,采用容器虚拟化技术和共享的分布式块存储技术,使得数据库服务器的CPU、内存能够快速扩容;(3)增减节点,3分钟生效,通过动态增减节点提升性能或节省成本。通过使用集群连接地址,可屏蔽底层的变化,应用对于增减节点无感知。

5.下一代数据库引擎内核:(1)基于共享存储的一写多读集群,数据只需要一次修改,所有节点立即生效。例如,大表加索引可能需要30分钟,那么在MySQL中,主备库共需要1个小时,且备库会延迟至少30分钟。而在POLARDB中,主库加索引后,备库立即生效,总耗时30分钟,延迟不超过1分钟;(2)采用物理日志代替逻辑日志,通过共享存储和物理日志,使得主备库延迟控制在毫秒级以内,且可根据实际情况修改为主备库强同步(会牺牲一定的写入性能);(3)无锁备份,利用底层分布式存储的快照技术,只需分钟级别即可完成对上1TB的数据库进行备份,且整个备份过程不需要对MySQL加锁,效率更高,影响更小;(4)并行查询引擎(SQL加速),通过并行计算提升复杂大SQL的查询性能,尤其适用于大表关联查询、对无索引列的点查询、多字段分组查询等场景,根据实际情况性能可提升8~30倍。

6.高可用和高可靠保障:(1)共享分布式存储的设计,彻底解决了MySQL Master-Slave异步复制所带来的备库数据非强一致的缺陷,使得整个数据库集群在应对任何单点故障时,可以保证数据0丢失;(2)采用Active-Active的高可用集群架构,可读写的主节点和只读节点之间进行Failover切换,与传统的Active-Standby相比,用同样成本带来了更好的系统访问性能。

7.数据安全可靠:采用白名单、VPC网络、SSL加密、数据多副本存储等全方位的手段,对数据库数据访问、存储、管理等各个环节提供安全保障。

三、PolarDB架构特点

1.一写多读

2.计算与存储分离

3.读写分离

4.高速链路互联

5.共享分布式存储

6.数据多副本、Parallel-Raft协议

云数据库PolarDB基于Cloud Native设计理念,其架构示意图及特点如下:

四、PolarDB的应用场景

1.高并发读写OLTP

2.高可用、弹性扩展

3.迁移上云

云数据库PolarDB(一)的更多相关文章

  1. 云数据库POLARDB产品解读之二:如何做到高性价比

    现在做任何事情都要看投入产出比,对应到数据库上其实就是性价比.POLARDB作为一款阿里自研数据库,经常被问的问题是:性能怎么样?能不能支撑我的业务?价格贵不贵?很显然,在早期调研阶段,对稳定性.可靠 ...

  2. 深入解读阿里云数据库POLARDB核心功能会话读一致性

    POLARDB架构 我们知道,POLARDB是一个由多个节点构成的数据库集群,一个主节点,多个读节点.对外默认提供两个地址,一个是集群地址,一个是主地址,推荐使用集群地址,因为它具备读写分离功能可以把 ...

  3. 阿里云云服务器 ECS和云数据库 PolarDB的简单使用

    阿里云云服务器 ECS和云数据库 PolarDB的简单使用 仅作为记录自己的操作使用,主要是怕自己太久不用都忘了 登录阿里云以后点击控制台 然后找到云服务器ECS,点击进入 在左侧找到实例,点击进入 ...

  4. 深入解读阿里云数据库POLARDB核心功能物理复制技术

    日志是数据库的重要组成部份,按顺序以增量的方式记录了数据库上所有的操作,日志模块的设计对于数据库的可靠性.稳定性和性能都非常重要. 可靠性方面,在有一个数据文件的基础全量备份后,对运行中的数据库来说, ...

  5. 云数据库POLARDB优势解读之①——10分钟了解

    什么是POLARDB POLARDB 是阿里云自研的下一代关系型分布式数据库,100%兼容MySQL,之前使用MySQL的应用程序不需要修改一行代码,即可使用POLARDB. POLARDB在运行形态 ...

  6. 什么是云数据库POLARDB

    POLARDB是阿里巴巴自主研发的下一代关系型分布式云原生数据库,目前兼容三种数据库引擎:MySQL.Oracle.PostgreSQL.计算能力最高可扩展至1000核以上,存储容量最高可达 100T ...

  7. 你有什么理由还不选择阿里云服务器呢--从阿里云发布自研商用关系型数据库POLARDB想到的

    最近几天,阿里云发布自研商用关系型数据库POLARDB的消息可谓是重磅炸弹啊.借用官方宣传的话就是:6倍性能于MySQL并100%兼容/100TB存储容量/2分钟创建只读副本/3分钟创建容灾实例,第三 ...

  8. 比MySQL快6倍 深度解析国内首个云原生数据库POLARDB的“王者荣耀”

    随着移动互联网.电子商务的高速发展,被使用最多的企业级开源数据系统MySQL面临着巨大挑战——为迎接“双11"的高并发要提前做好分库分表;用户不断激增要将读写分离才能应对每天上亿次的访问,但 ...

  9. 重新定义数据库的时刻,阿里云数据库专家带你了解POLARDB

    摘要:POLARDB是阿里云ApsaraDB数据库团队研发的基于云计算架构的下一代关系型数据库,其最大的特色是计算节点与存储节点分离,借助优秀的RDMA网络以及最新的块存储技术.POLARDB不但满足 ...

随机推荐

  1. ActionMQ集群部署

    ActiveMQ集群部署 一.应用场景 消息中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题.实现高性能,高可用,可伸缩和最终一致性架构.是大型分布式系统不可缺少的中间件.目 ...

  2. JVM(1)---虚拟机在运行期的优化策略

    1.解释器与JIT编译器 首先我们先来了解一下运行在虚拟机之上的解释器与JIT编译器.当我们的虚拟机在运行一个java程序的时候,它可以采用两种方式来运行这个java程序: 采用解释器的形式,也就是说 ...

  3. SpringBoot是如何动起来的

    SpringBoot是如何动起来的 程序入口 SpringApplication.run(BeautyApplication.class, args); 执行此方法来加载整个SpringBoot的环境 ...

  4. flume 1.8.0 开发基础

    本文由云+社区发表 作者:皮皮熊 概述 Apache Flume是一个用于高效地从大量异构数据源收集.聚合.传输到一个集中式数据存储的分布式.高可靠.高可用的系统. Apache Flume是Apac ...

  5. Java学习--使用 Date 和 SimpleDateFormat 类表示时间

    使用 Date 和 SimpleDateFormat 类表示时间 在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用 java.util 包中的 Date 类.这个类最主要的作用就是获取 ...

  6. TensorFlow资料汇总

    升级mac自带的python 使用virtualenv进行python环境隔离 tf.nn.conv2d.卷积函数 max_pool 池化函数 TF.VARIABLE.TF.GET_VARIABLE. ...

  7. Python全栈开发之---assert断言

    一.python assert的作用: 根据Python 官方文档解释(https://docs.python.org/3/reference/simple_stmts.html#assert), & ...

  8. springboot之JdbcTemplate

    springboot可以使用JdbcTemplate进行数据库访问,代码如下 添加pom文件 <parent> <groupId>org.springframework.boo ...

  9. Python中文词频统计

    以下是关于小说的中文词频统计 这里有三个文件,分别为novel.txt.punctuation.txt.meaningless.txt. 这三个是小说文本.特殊符号和无意义词 Python代码统计词频 ...

  10. Xamarin 学习笔记 - Page(页面)

    本文翻译自CodeProject文章:https://www.codeproject.com/Articles/1226447/Xamarin-Notes-Xamarin-Forms-Pages 转载 ...