写点什么

阿里云正式开源 PolarDB-X 数据库,曾历经各届双 11 考验,现已登陆 GitHub

  • 2021-10-20
  • 本文字数:3237 字

    阅读完需:约 11 分钟

阿里云正式开源PolarDB-X数据库,曾历经各届双11考验,现已登陆 GitHub

10 月 20 日,阿里云在 2021 云栖大会现场宣布正式开源云原生分布式数据库 PolarDB-X 的源代码,将自研云原生分布式核心技术分享出来,进一步推动云原生分布式数据库发展。



本次开源遵循 Apache v2(计算层) 和 GPL v2(存储层) 开源协议,以全共享并尊重原作者著作权的模式开源,用户可以直接使用或基于阿里云开源数据库产品提供二次分发的商用产品和服务。该项目现已在阿里云官网及 GitHub 上发布。


GitHub 地址:https://github.com/ApsaraDB/galaxysql



“我们将阿里最核心的云原生数据库技术进行开源,希望开发者和客户通过开源版本快速使用阿里云数据库产品技术,并参与到技术产品的迭代过程中来,共建云原生分布式数据库生态。”阿里云数据库负责人李飞飞表示。


2013 年,阿里巴巴将最后一台 Oracle 数据库从淘宝核心系统中下线,开始用开源数据库解决“双 11”等极端流量场景,随后又扛起了自研云数据库的大旗,并在 2017 年云栖大会前夕推出云原生分布式数据库 PolarDB


在 2020 年阿里云峰会上,阿里云宣布推出 PolarDB-X 数据库。PolarDB-X 采用了基于云原生一体化架构设计,专注解决海量数据存储、超高并发吞吐、大表瓶颈以及复杂计算效率等瓶颈问题。李飞飞曾表示,“PolarDB 的计算是一写多读多个计算节点,最多做到 16 个节点,现在,PolarDB-X 相当于在 PolarDB 之上又加上了一个分布式拓展层,这样可以根据企业的并发需求、数据量进行水平拓展。”


在今年 5 月 29 日举办的 2021 阿里云开发者大会上,阿里云宣布了“阿里云数据库开源计划”,并率先开源了 PolarDB for PostgreSQL 分布式版,包括数据库内核、相关插件、工具脚本、测试用例以及设计文档,适用于中大型企业核心业务场景。李飞飞表示:“我们希望将阿里云在数据库技术上积累的丰富经验,通过标准技术组件和系统的方式开放出来,共建开源数据库生态。”


本次,阿里云宣布开源 PolarDB-X 数据库,继续遵循“阿里云数据库开源计划”,并进一步壮大了开源数据库生态。


PolarDB-X 架构演进与核心技术

架构演进


PolarDB-X 是由阿里自主研发的原生 MySQL 分布式数据库,兼容 MySQL 协议与客户端,具备自动负载均衡、高可用、HTAP 混合负载、支持分布式事务、全局二级索引等重要特性,专注解决超高并发吞吐、海量数据存储、大表瓶颈等数据库瓶颈难题,历经各届天猫双 11 及全行业客户业务的考验,其诞生最早可以追溯至阿里在 2009 年发起的“去 IOE”运动。


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


随着这套架构逐渐成熟,2014 年开始,阿里云推出了 DRDS + RDS 的分布式云数据库服务,这也被称为 PolarDB-X 1.0 时代。这代产品的特征是采用 Share-Nothing 架构、以解决存储扩展性为出发点、提供面向用户的产品化交付能力。针对用户使用中的痛点,阿里云不断进行产品能力迭代,陆续支持了分布式事务、全局二级索引、异步 DDL 等内核特性,持续改进 SQL 兼容性,实现子查询展开、Join 下推等复杂优化,并开发了平滑扩容、一致性备份恢复、SQL 闪回、SQL 审计等运维能力。


2018 年开始,PolarDB-X 进入 2.0 时代,持续探索基于云架构的分布式数据库形态。2019 年,PolarDB-X 团队完成 DRDS SQL 引擎和 X-DB 数据库存储技术的融合,并结合 PolarDB 的云原生特性,承上启下推出了新一代的云原生分布式数据库。


目前,PolarDB-X 共有 1.0 和 2.0 两种形态。其中,PolarDB-X 1.0 版由计算层 PolarDB-X 实例和存储层私有定制 RDS 实例组成,通过挂载多个 MySQL 进行分库分表,提供多种贴合 OLTP 业务的拆分方案,解决高并发、大数据量存储、在线计算的扩展性难题。PolarDB-X 2.0 版是云原生分布式数据库,支持全局 MVCC 的强一致的分布式事务、私有 RPC 协议带来的性能提升、Follower 上的一致性读能力等,运维管理更加便捷。

核心技术


1. 基于 Paxos 的一致性存储


阿里多年在异地多活的场景下,打磨 Paxos 的一致性共识协议,经过了几年双十一的生产级业务的沉淀,基于多分组 Paxos 的技术,将为 PolarDB-X 提供一致性的数据保证。除了 Paxos 的基础功能外,在生产环境下也沉淀了比较多的企业特性,比如:Paxos 多分组合并、日志型副本、热点更新优化、高可用检测等。


2. 强一致分布式事务


采用业界比较主流的全局时钟 TSO + MVCC 的策略,结合 2PC、Paxos 等相关技术,提供可严格满足金融转账场景的事务一致性。


3. 分布式 SQL 引擎 (CBO 优化器、并行计算)


基于存储计算分离、分布式等特性,基于全新的 volcano/cascade 优化器模型,提供了 Partition Aware 的计算下推,支持满足 HTAP 场景的索引选择以及原生 MPP 的并行计算优化等。

阿里云数据库开源计划


如前文言,本次 PolarDB-X 的开源源于阿里云此前公布的「阿里云数据库开源计划」。


2021 年 5 月,阿里云面向所有开发者发布了「阿里云数据库开源计划」。目前,阿里云在 GitHub 上有 2600 多个开源项目,3 万多个贡献者,Star 超百万。


阿里云首个开源的是 PolarDB for PostgreSQL 分布式版,包括数据库内核、相关插件、工具脚本、测试用例以及设计文档,适用于中大型企业核心业务场景。本次开源遵循 Apache Version 2.0 协议,以全共享并尊重原作者著作权的模式开源,代码可以修改和再发布。


PolarDB for PostgreSQL 的“三步走”开源路线图:


第一步,2021 年 6 月开源三节点高可用集群版本 -Paxos;

第二步,9 月会开源 HLC 高扩展分布式版本;

第三步,到 2022 年 3 月会开源 Sharding 和插件化版本。


阿里云一步一步将 PolarDB for PostgreSQL 变成一个分布式云原生数据库,真正打造云原生数据库 2.0 的开源社区。



从阿里云数据库开源的路线图来看,到 2022 年左右,这两年时间内,阿里云数据库会分批进行开源。

为什么首先开源 PolarDB PG 版本数据库?


李飞飞:为什么会选择这个开源。第一选择 PolarDB PG 开源是因为我们看到了,我们希望选择一个,第一有非常丰富的现有的 PG 生态,第二在 PG 这个领域目前还没有看到很好的云原生数据库的生态,它有各种各样的数据库分支,有做分布式的,但是云原生的弹性,存储计算分离,高可用,在 PG 社区是欠缺的,所以我们开源 Polar PG,把核心的云原生的能力就提供给开源社区,构建一个云原生 PG 数据库的生态,这是我们的初衷。

阿里云会不会未来把所有数据库能力都开源?


李飞飞:这个肯定不会。因为商业化能力和开源社区之间还是有一点区别,比如基于云原生管控的能力,还有一些企业级的能力,比如针对商业版数据库兼容性的能力等等这些,还有其他的企业级的特性,我们可能就会选择不开源,这部分就是我们商业化版本,我们云服务提供的版本和开源版本一些核心的开发的点。我们希望用户,我们的客户能够通过开源版本把阿里云数据库产品技术快速用起来,并且能够愿意参与到技术产品的迭代过程中去,但是在一些高阶的能力上,借鉴我们团队专业能力和阿里云服务的能力,形成良好的商业合作伙伴,两者之间相辅相成,这是我们的基本思考。

写在最后


得益于云原生技术对数据库的彻底重构,数据库服务已成为按需取用、安全可靠、成本低廉的服务。云原生分布式数据库具备易用性、高扩展性、快速迭代、节约成本等特征,是未来必然的发展趋势,可以解决企业用户的核心诉求。


为了更好地促进数据库核心技术的发展,InfoQ 在 11 月 26 日召开的【DIVE 全球基础软件创新大会】(北京站)的现场特别设置了【数据库核心技术探讨】专场,与业界专家共同探讨基础软件黄金时代下数据库领域的发展与实践。如果你对该议题有兴趣,欢迎进入大会官网获取免费嘉宾票


大会官网:https://dive.infoq.cn/2021/beijing/track/1206

2021-10-20 10:576508

评论 11 条评论

发布
用户头像
2222
2021-10-28 16:08
回复
2222
2021-10-28 16:08
回复
Leon回复Leon
333
2021-10-28 16:08
回复
Leon回复Leon
5555
2021-10-28 16:08
回复
查看更多回复
没有更多了
发现更多内容

Substrate 源码追新导读: 修复BEEFY的gossip引擎内存泄漏问题, 智能合约删除队列优化

彭亚伦

Substrate 波卡

IOS技术分享| iOS快速生成开发文档(二)

anyRTC开发者

ios objective-c 音视频 移动开发 Jazzy

Substrate 源码追新导读: 5月中旬: Uniques NFT模块和Nomination Pool

彭亚伦

Substrate 波卡

科普达人丨漫画图解什么是eRDMA?

阿里云弹性计算

大数据 TCP/IP RDMA

用Python编写学生成绩计算系统

王小王-123

Python 成绩计算系统 成绩项目 日常编程

波卡跨链通信源码探秘: 要素篇

彭亚伦

Substrate 波卡

从前端开发角度理解如何与Substrate协作

彭亚伦

Substrate 波卡

14岁懂社会-《关于“工作的幸福”这件事儿》读书笔记

懒时小窝

14岁懂社会

揭秘得物客服IM全链路通信过程

得物技术

前端 大前端 通信 IM 客服

Subtrate 源码追新导读-5月上旬: XCM 正式启用

彭亚伦

Substrate 波卡

实现多方数据安全共享,解决普惠金融信息不对称难题

易观分析

数据安全

Substrate 源码追新导读: 波卡系波卡权重计算全面更新, Governance 2.0 版本的优化和调整

彭亚伦

Substrate 波卡

Substrate 源码追新导读: Pallet Alliance 并入主线,

彭亚伦

Substrate 波卡

实战|SpringBoot jpa调用MySQL存储过程

写程序的小王叔叔

SpringBoot 2 存储过程 Spring JPA 6月月更

​web前端培训 | JavaScript私有属性的实现方式

@零度

JavaScript 前端开发

百度直播iOS SDK平台化输出改造

百度Geek说

ios 直播

Substrate 源码追新导读: Call调用索引化, 存储层事物化全面完成

彭亚伦

Substrate 波卡

我的远程办公总结|社区征文

DS小龙哥

远程办公 初夏征文

用Python写一个简易机器人,超级简单!

王小王-123

python编写机器人 python项目 语法知识大全

OpenMLDB Meetup No.4 会议纪要

第四范式开发者社区

机器学习 数据库 特征平台 特征工程 实时

Vue3核心之响应式

Python研究所

6月月更

led背光板的作用是什么呢?

Dylan

LED LED显示屏

网络营销之四大误解

源字节1号

微信小程序 前端开发 后端开发 网站开发

用Python编写学生成绩管理系统(内附源码)

王小王-123

Python 系统设计 用python编写成绩管理系统 学生成绩管理系统

用Python自动化办公(csv项目实战)

王小王-123

csv python项目 自动化办公 大数据分割

拆分电商系统为微服务

Fan

「架构实战营」

Substrate 源码追新导读: 质押额度大幅度削减, RocksDB可以完全被Disable

彭亚伦

Substrate 波卡

OLAP数据库引擎如何选型?

奇点云

OLAP 数据库引擎 OLAP数据库

国内首批!阿里云云原生数据湖产品通过信通院评测认证

阿里云大数据AI技术

大数据 运维 存储

优惠券种类那么多,先区分清楚再薅羊毛!

CRMEB

Go 语言入门很简单:Go 处理 XML 文件

宇宙之一粟

xml Go 语言 6月月更

阿里云正式开源PolarDB-X数据库,曾历经各届双11考验,现已登陆 GitHub_数据库_凌敏_InfoQ精选文章