前言

PolarDB-X是由阿里巴巴自主研发的云原生分布式数据库,融合分布式SQL引擎DRDS与分布式自研存储X-DB,基于云原生一体化架构设计,可支撑千万级并发规模及百PB级海量存储。专注解决海量数据存储、超高并发吞吐、大表瓶颈以及复杂计算效率等数据库瓶颈问题,历经各届天猫双十一及阿里云各行业客户业务的考验,助力企业加速完成业务数字化转型。

PolarDB-X核心能力采用标准关系型数据库技术实现,配合完善的管控运维及产品化能力,使其具备稳定可靠、高度可扩展、持续可运维、类传统单机MySQL数据库体验的特点。

PolarDB-X在公共云和专有云环境沉淀打磨多年,历经各届天猫双十一核心交易业务及各行业阿里云客户业务的考验。承载大量用户核心在线业务,横跨互联网、金融支付、教育、通信、公共事业等多行业,是阿里巴巴集团内部所有在线核心业务及众多阿里云客户业务接入分布式数据库的事实标准。

技术发展背景

2003年,淘宝网成立之初,采用经典的LAMP架构(Linux-Apache-MySQL-PHP)。随着用户量迅速增长,单机MySQL数据库很快便无法满足数据存储需求。之后,淘宝网进行了架构升级,数据库改用Oracle。随着用户量的继续快速增长,Oracle数据库也开始成批成批的增加,即使这样,仍然无法满足业务对数据库扩展性的诉求。因此,阿里巴巴内部在2009年时发起了著名的去IOE运动,PolarDB-X也开启了自己的演进之路。

整个技术架构的发展,可分为:0.5时代(TDDL+AliSQL),1.0时代(DRDS+RDS),2.0时代(PolarDB-X)。

2021060801PolarDB-X 0.5时代

去IOE的关键一环是实现对Oracle的替换。当时淘宝的业务体量已很难用成熟的技术产品支撑,为了避免以后出现卡脖子情况,技术的自力更生和自主可控成为一个核心诉求。一方面,随着x86技术日趋成熟,稳定性与小型机的差距不断缩小,另一方面,MySQL采用轻量化线程模型并具备高并发的支持能力,其生态逐步完善,因此新方案采用了基于Sharding技术+开源MySQL的分布式架构(TDDL+ AliSQL ),这被称为PolarDB-X0.5 版本时代。这代产品的特征是以解决扩展性为目标、面向系统架构使用,尚不具备产品化能力。

PolarDB-X 1.0时代

随着PolarDB-X0.5时代架构的逐渐成熟,2014年开始,基于阿里云,数据库的发展走上了云数据库之路。作为分库分表技术的开创者,开始了PolarDB-X1.0时代,推出了DRDS+ RDS 的分布式云数据库服务。这代产品的特征是采用Share-Nothing架构,以解决存储扩展性为出发点,提供面向用户的产品化交付能力。PolarDB-X1.0版本是国内第一家落地分布式技术的云服务,成为云市场上分布式数据库技术方向的开创者和引领者。

针对用户使用中的痛点,我们不断进行产品能力迭代,陆续支持了分布式事务、全局二级索引、异步DDL等内核特性,持续改进SQL兼容性,实现子查询展开、Join下推等复杂优化,并开发了平滑扩容、一致性备份恢复、SQL闪回、SQL审计等运维能力。这期间,我们不断扩展分库分表中间件技术的能力边界,探寻它的能力上限。这个探索的过程,一方面使我们的计算层能力更加稳定、丰富和标准化,另一方面也促使着DRDS从中间件到分布式数据库的蜕变。

PolarDB-X 2.0时代

2018年开始,我们逐渐触碰到了计算层的能力边界,比如无法提供RR隔离级别的事务能力、计算下推受限于SQL表达能力、数据查询的传输效率底下、多副本的线性一致性不可控等,这些问题像一个无法穿透的屏障,但我们能看到屏障的对面是什么,能看到所有障碍都指向了同一个方向:计算层需要与存储层深度融合。

值得高兴的是,我们的AliSQL分支从诞生起就没有停止前进的步伐。通过集团业务多年的技术锤炼,基于AliSQL演化而来的X-DB数据库(包括X-Paxos协议库、X-Engine存储引擎等),在全球三副本、低成本存储等技术有了非常好的沉淀。

与此同时,基于云原生架构理念的PolarDB,通过引入RDMA网络优化存储计算分离架构,实现了一写多读的能力,并提供资源池化,降低用户成本;具备优化并提供秒级备份恢复、秒级弹性等能力,成为公有云增速最快的数据库产品。

基于这些技术探索和沉淀,我们开始思考基于云架构的分布式数据库应该是什么样的形态。

从宏观角度来看,会有云原生、国产化、分布式、HTAP等诉求。

从用户角度来看,需要满足用户使用云的一些期望,比如用户的数据库数据永远不会丢,即使主机异常宕机,这里需要有数据强一致以及高可用容灾等能力;比如随着移动互联网和IoT的普及,数据层面会有爆炸式的增长,以及疫情之后有更多的企业会关注IT成本,因此高性能、低成本和可扩展的计算和存储能力也成为普适性诉求;另外,按查询付费的弹性能力,也是市场的一个诉求。

因此,下一代的分布式数据库需要具备:金融级高可用和容灾、水平扩展、低成本存储、按需弹性、透明分布式、HTAP混合负载、融合新硬件等。

2019年,我们完成DRDS SQL引擎和X-DB数据库存储技术的融合,并结合PolarDB的云原生特性,承上启下推出了新一代的云原生分布式数据库,就此开启了PolarDB-X 2.0时代。该时代的产品专注解决单机解决不好的分布式扩展性问题,满足分布式数据一致性要求,并支持从单机到分布式的平滑演进,利用云原生技术的优势提供低成本和弹性能力,在交付上具备线上公有云、线下专有云、轻量化等全形态输出。