来自东亚银行、南京钢铁、宁德核电专家分享数字化转型人才发展最新实践,戳此预约直播 >>> 了解详情
写点什么

阿里云正式开源 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:575622

评论 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
回复
查看更多回复
没有更多了
发现更多内容

IO问题成顽疾,鹅厂专家来教你

数据君

数据库

高并发下,如何让你的数据库再快一点?

数据君

数据库

LeetCode题解:515. 在每个树行中找最大值,BFS,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

老师讲的真棒!阿里P7级别面试经验总结,终获offer

欢喜学安卓

android 程序员 面试 移动开发

疫情之下,被公司优化掉!同事大部分都去了创业型的公司,而我仅仅一年经验,却斩获多家大厂offer

Java~~~

Java 面试 架构师技能

诚招译者 | Bruce Eckel On Java 8 中文版

图灵社区

Java

TensorFlow2 Fashion-MNIST图像分类(一)

书豪

tensorflow 学习

快速学会!啃完999页Android面试高频宝典,挥泪整理面经

欢喜学安卓

android 程序员 面试 移动开发

http client 中的 connectionRequestTimeout, connectTimeout, socketTimeout

不在调上

观点|发展区块链金融,长三角如何建设“四梁八柱”

CECBC

区块链

开发者,别让自己孤独

阿里巴巴云原生

开源 开发者 云原生 OAM CloudNative

DolphinDB与Pandas对于大文本文件处理的性能对比

DolphinDB

数据库 pandas tsdb 数据库选择 DolphinDB

Redis Sentinel-深入浅出原理和实战

Linux服务器开发

redis 中间件 底层应用开发 web服务器 Linux服务器开发

一道腾讯面试题目:没有listen,能否建立TCP连接

linux大本营

c++ Linux TCP 后台开发 TCP/IP

深入Linux内核架构——进程虚拟内存

赖猫

c++ Linux

docker与podman的故事:一个方兴未艾,一个异军突起

晓川

老师讲的真棒!总结2020年最全180道Android岗面试题,Android校招面试指南

欢喜学安卓

android 程序员 面试 移动开发

深入浅出 WebRTC AEC(声学回声消除)

阿里云视频云

阿里云 音视频 WebRTC 音频技术 视频云

加密货币可能是人类历史上最大的/富国银行报告:加密货币投资像19世纪50年代的早期淘金热财富转移

CECBC

数字货币

揭开IP地址的神秘身份!!!

德胜网络-阳

SDK开发质量保障经验总结

张明云

接口 程序设计 接口测试 sdk SDK测试

架构师训练营第 1 期 - 第 11周 - 学习总结

wgl

极客大学架构师训练营

cartographer环境建立以及建图测试(详细级)

良知犹存

cartographer slam

大促中为什么需要可视化监控大屏?

京东科技开发者

大数据 监控 数据可视化

天下武功,唯”拆“不破| 技术人应知的创新思维模型 (4)

Alan

思维模型 技术人应知的创新思维模型 MECE 组合创新 28天写作

架构师训练营W08作业

Geek_f06ede

专访 CNCF 大使张磊:让云原生不再是大厂专属

阿里巴巴云原生

开源 开发者 云原生 OAM CloudNative

Gemini双子新约系统软件开发|Gemini双子新约APP开发

系统开发

案件数同比下降七成 北京引入“区块链”化解物业纠纷

CECBC

区块链 法律

TensorFlow2 Fashion-MNIST图像分类(二)

书豪

本文帮你在Unix下玩转C语言

MySQL从删库到跑路

unix C语言

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