本文介绍了数据库行业的发展及PolarDB-X的技术发展历程。
行业趋势
数据库系统至关重要
数据库与操作系统、中间件并称为系统软件的三驾马车,是企业IT系统不可或缺的组件,也是互联网应用级企业信息管理系统存储数据和管理数据的核心平台。数据库系统是一切应用软件的数据处理及交换核心,是所有基础软件进行数据存储、查询、分析处理的中心。数据库系统运行性能是否高效稳定、接口语言是否通用,直接决定了上层应用能否给用户提供好的性能,同时直接影响开发人员效率。根据全球权威IT研究咨询公司的数据,2017年全球企业基础软件市场规模1958.52亿美金,其中数据库市场规模388亿美金,占比近20%,是最大组成部分。
分布式数据库是发展方向
近年来,随着互联网、大数据的飞速发展,特别是“双十一”指数型的成交总额发展曲线,让世界看到了中国电子商务业务的火箭式发展势头。而同时,对于背后的业务支撑系统来说,同样经历了火箭式的系统压力增长。以“双十一”为例,除了直接面向用户的电商网站系统,还有背后各相关物流公司的物流系统,各相关银行的支付系统, 各卖家的仓储系统等等。
随着普惠金融、数字金融的快速推进,数据能力也已经成为金融机构在新时代提升业务能力的重要抓手。与此同时,移动互联网和电子支付业务的蓬勃发展,给金融行业的典型应用场景,如核心账户与账务交易、在线支付/移动支付交易业务、实时交易监控与指标分析等,带来新数据形态下的金融系统能力需求。
传统的银行支付系统通常采用所谓的“IOE”结构,即IBM的大型机或小型机、Oracle的数据库、EMC的存储设备,这套系统仍存在成本巨大且与服务提供商严重捆绑的隐患。随着移动互联网的快速发展以及电子支付的兴起,对于银行核心支付系统来说是爆炸式的业务增速。传统的“IOE”系统为集中式系统,但是随着“摩尔定律”的逐渐失效,单台服务器上的性能极限已经慢慢显露,在这种情况下,技术人员逐渐开始探索将原有的集中式系统改造为分布式系统,通过多台中低端服务器的水平扩展方式替换一台高性能服务器垂直扩展方式,同时完成降低成本、增长性能的目的。在这种需求下,大规模分布式事务型数据库成为解决分布式系统数据存储、管理的主要方向。
PolarDB-X技术发展
产品前言
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也开启了自己的演进之路。
TDDL
去IOE的关键一环是实现对Oracle的替换。当时淘宝的业务体量已很难用成熟的技术产品支撑,为了避免以后出现技术瓶颈,技术的自力更生和自主可控成为一个核心诉求。一方面,随着x86技术日趋成熟,稳定性与小型机的差距不断缩小,另一方面,MySQL采用轻量化线程模型并具备高并发的支持能力,其生态逐步完善,因此新方案采用了基于Sharding技术+开源MySQL的分布式架构(TDDL+ AliSQL ),这代产品的特征是以解决扩展性为目标、面向系统架构使用,尚不具备产品化能力。
DRDS
随着TDDL时代架构的逐渐成熟,2014年开始,基于阿里云,数据库的发展走上了云数据库之路。作为分库分表技术的开创者,我们推出了DRDS+RDS的分布式云数据库服务。这代产品的特征是采用Share-Nothing架构,以解决存储扩展性为出发点,提供面向用户的产品化交付能力。
PolarDB-X 1.0
针对分库分表使用中的痛点,我们不断进行产品能力迭代,陆续支持了分布式事务、全局二级索引、异步DDL等内核特性,持续改进SQL兼容性,实现子查询展开、Join下推等复杂优化,并开发了平滑扩容、一致性备份恢复、SQL闪回、SQL审计等运维能力。这期间,我们不断扩展 Sharding 技术的能力边界,探寻它的能力上限。这个探索的过程,一方面使我们的计算层能力更加稳定、丰富和标准化,另一方面也促使着DRDS从中间件到分布式数据库的蜕变。2019年PolarDB-X全新产品线发布,成为一个新的里程碑。
PolarDB-X 2.0
2018年开始,我们逐渐触碰到了计算层的能力边界,比如无法提供RR隔离级别的事务能力、计算下推受限于SQL表达能力、数据查询的传输效率低下、多副本的线性一致性不可控等,这些问题像一个无法穿透的屏障,但我们能看到屏障的对面是什么,能看到所有障碍都指向了同一个方向:计算层需要与存储层深度融合。
庆幸的是,我们的AliSQL分支从诞生起就没有停止前进的步伐。通过集团业务多年的技术锤炼,基于AliSQL演化而来的X-DB数据库(包括X-Paxos协议库、X-Engine存储引擎等),在三副本、低成本存储等技术有了非常好的沉淀。
与此同时,基于云原生架构理念的PolarDB,通过引入RDMA网络优化存储计算分离架构,实现了一写多读的能力,并提供资源池化,降低用户成本;具备优化并提供秒级备份恢复、秒级弹性等能力,成为公有云增速最快的数据库产品。
基于这些技术探索和沉淀,我们开始思考基于云架构的分布式数据库应该是什么样的形态。
从用户角度来看,需要满足用户使用云的一些期望,比如用户的数据库数据永远不会丢,即使主机异常宕机,这里需要有数据强一致以及高可用容灾等能力;比如随着移动互联网和IoT的普及,数据层面会有爆炸式的增长,以及疫情之后有更多的企业会关注IT成本,因此高性能、低成本和可扩展的计算和存储能力也成为普适性诉求;另外,按查询付费的弹性能力,也是市场的一个诉求。
因此,下一代的分布式数据库需要具备:金融级高可用和容灾、水平扩展、低成本存储、按需弹性、透明分布式、HTAP混合负载、融合新硬件等特性。
2021年,我们完成原DRDS SQL引擎和X-DB数据库存储技术的融合,并结合PolarDB的云原生特性,承上启下推出了新一代的云原生分布式数据库,就此开启了PolarDB-X 2.0时代。该时代的产品专注解决单机解决不好的分布式扩展性问题,满足分布式数据一致性要求,并支持从单机到分布式的平滑演进,利用云原生技术的优势提供低成本和弹性能力,在交付上具备线上公有云、线下专有云、轻量化等全形态输出。