云数据库PolarDB(一)

2020-05-27 00:00:00 数据 数据库 分布式 节点 阿里

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


二、PolarDB优势分析


1.简单易用:兼容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.迁移上云

相关文章