如何评价阿里云新一代关系型数据库 PolarDB?
23 个回答
作为PolarDB和PolarStore的设计师来回答这个问题。
首先要向AWS Aurora的创新性致敬!Aurora通过计算节点和存储节点分离,计算节点scale up,存储节点scale out的理念将公有云的关系数据库产品推向了一个新的高度。
在设计方法上,阿里云的PolarDB和Aurora走了不一样的路,归根结底是我们的出发点不同。
AWS的RDS一开始就是架设在它的虚拟机产品EC2之上的,使用的存储是云盘EBS。EC2和EBS之间通过网络通讯,因此AWS的团队认为“网络成为数据库的瓶颈”,在Aurora的论文中,他们开篇就提出“Instead, the bottleneck moves to the network between the database tier requesting I/Os and the storage tier that performs these I/Os.” Aurora设计于12到13年之际,当时网络主流是万兆网络,确实容易成为瓶颈。
而PolarDB是从15年开始研发的,我们见证了IDC从万兆到25Gb RDMA网络的飞跃。因此我们非常大胆的判断,未来几年主机通过高速网络互联,其传输速率会和本地PCIe总线存储设备带宽打平,网络无论在延迟还是带宽上都会接近总线,因此不再成为高性能服务器的瓶颈。而恰恰是软件,过去基于内核提供的syscall开发的软件代码,才是拖慢系统的一环。Bottleneck resides in the software.
在架构上Aurora和PolarDB各有特色。我认为PolarDB的架构和技术更胜一筹。
1)现代云计算机型的演进和分化,计算机型向高主频,多CPU,大内存的方向演进;存储机型向高密度,低功耗方向发展。机型的分化可以大大提高机器资源的使用率,降低TCO。
因此PolarStore中大量采用OS-bypass和zero-copy的技术来节约CPU,降低处理单位I/O吞吐需要消耗的CPU资源,确保存储节点处理I/O请求的效率。而Aurora的存储节点需要大量CPU做redolog到innodb page的转换,存储节点的效率远不如PolarStore。
2)Aurora架构的最大亮点是,存储节点具有将redolog转换为innodb page的能力,这个改进看着很吸引眼球,事实上这个优化对关系数据库的性能提升很有限,性能瓶颈真的不在这里:),反而会拖慢关键路径redolog落地的性能。btw,在PolarDB架构下,redolog离线转换为innodb page的能力不难实现,但我们目前不认为这是高优先级要做的。
3)Aurora的存储多副本是通过quorum机制来实现的,Aurora是六副本,也就是说,需要计算节点向六个存储节点分别写六次,这里其实计算节点的网络开销又上去了,而且是发生在写redolog这种关键路径上。而PolarDB是采用基于RDMA实现的ParallelRaft技术来复制数据,计算节点只要写一次I/O请求到PolarStore的Leader节点,由Leader节点保证quorum写入其他节点,相当于多副本replication被offload到存储节点上。
此外,在最终一致性上Aurora是用gossip协议来兜底的,在完备程度上没有PolarDB使用的ParallelRaft算法有保证。
4)Aurora的改动手术切口太大,使得它很难后面持续跟进社区的新版本。这也是AWS几个数据库产品线的通病,例如Redshift,如何吸收PostgrelSQL 10的变更是他们的开发团队很头疼的问题。对新版本做到与时俱进是云数据库的一个朴素需求。怎么设计这个刀口,达到effect和cost之间的平衡,是对架构师的考验。
对PolarDB感兴趣的同学可以继续看看我写的这篇文章:
6倍性能差100TB容量,阿里云POLARDB如何实现?-博客-云栖社区-阿里云
以及云栖大会2017上的演讲:


谢邀
POLARDB是阿里云自研的全新一代商用关系型云数据库,是阿里云面向企业级市场推出的基石级产品,为新金融、新零售、新制造、物联网、电信等高吞吐场景而生,提供100T级别数据库容量、6倍于MySQL性能、使用成本持平开源数据库,重新定义云数据库标准。
目前仅有AWS、阿里云拥有在第三代技术架构上布局关系型云数据库的自研及产品化能力,面对未来建立起云计算竞争力。
作为阿里云数据库团队自身多年在硬件和数据库源码上的集大成品,POLARDB解决了传统数据库暴露出的诸多问题,实现高性能/高容量/低成本特性。
1) 自研创新的智能数据引擎POLARSTORE,实现第三代云数据库技术架构产品化
POLARDB采用计算节点和存储节点分离的分布式集群架构设计,使用阿里云自研创新数据引擎POLARSTORE,智慧调度其数据流,独特的Active-Active的数据库多节点和分布式存储机制实现业内首个“一写多读”功能,实现6倍于MySQL的超高性能,100%向下兼容MySQL 5.6。

2) 软硬一体突破性能瓶颈,高出同行一倍的数据引擎能力
POLARDB实现最大100T的存储容量,采用64核CPU及512GB内存,提供超过同行一倍的澎湃动力。
POLARDB使用高达50Gbps的RDMA网络来连接其分布式计算节点集群,实现支持最高支持每秒15万次写请求以及50万次读请求,拥有足以应对互联网海量数据下超高并发场景,同时也是阿里巴巴集团第一次,亚洲第一家将RDMA网络大规模应用到公有云上,实现科技普惠行业。

3) 软件创新解决IO消耗问题
POLARDB针对高并发场景采用类似Fallocate方式的预先分配日志文件,实现Replica上的读请求不需要重复创建新的ReadView,继续使用上次缓存,相比同行减少40% IO消耗。

4) 综合性能冲击世界顶峰
在实测跑分上,POLARDB读写性能均超越同级产品,读终极性能实现100万QPS,写性能实现13万QPS,领先同行。过去10TB数据创建只能副本需要几小时,现在POLARDB 2分钟即可能实现极速扩展,全球范围内创建异地容灾实例也仅需3分钟,性能冲击世界顶峰。

阿里云POLARDB的诞生解决公有云环境下随着用户业务以及计算负载的增加和变化,逐渐暴露出来的诸多I/O瓶颈问题,如数据容量限制、存储空间扩展慢、Binlog日志效率低,备份及恢复慢,大数据处理性能瓶颈等问题。带来:
1) 大幅降低使用成本:通过计算、存储资源池化和透明压缩等技术,最大限度降低管理和维护成本。
2) 大幅提升性能及存储能力:计算资源池和存储资源池借助自研创新的PolarStore智慧调度引擎进行协同调度,实现6倍于MySQL的性能提升以及100T的存储容量。
3) MySQL兼容性:100%向下兼容MySQL 5.6数据库
4) 超高可扩展性:计算引擎能力及存储能力实现秒级扩展
5) 数据可用性:Active-Active的数据库多节点和分布式存储机制,能够自动检测、感知故障并进行自动恢复
6) 超高安全性:POLARDB采用白名单、VPC网络、SSL加密、SQL审计、数据多副本存储、备份恢复等全方位手段,对数据库数据访问、存储、管理等各个环节提供安全保障。
在数据库诞生的40年后,阿里云希望通过POLARDB来改写未来,成就一个数据库即可满足现时多类数据库混合使用效果的大梦想(All in one),POLARDB以OLTP与OLAP一体化(HTAP)设计产品理念,为企业的整体数据架构带来革命性进化。

