NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

Redis中的Big Key问题:排查与解决思路

Java随想录

Java redis

Spark入门指南:从基础概念到实践应用全解析

Java随想录

Java 大数据 spark

Scala语言入门:初学者的基础语法指南

Java随想录

Java scala 大数据

数字赋能,联通未来——数划云亮相“2023创源工业互联网创新大赛暨优秀项目路演”

数划云

泰山众筹APP开发,泰山众筹商城开发

V\TG【ch3nguang】

Mac平台的视频编辑和调色软件 DaVinci Resolve Studio 18

展初云

Mac软件 视频编辑 达芬奇18

HBase入门指南

Java随想录

Java 大数据 habse

可以拯救陈年老视频的Topaz Video AI

展初云

Mac软件 视频修复工具

小游戏的来龙去脉及入局方式

Onegun

小游戏 小游戏开发

【稳定性】稳定性建设之弹性设计 | 京东物流技术团队

京东科技开发者

系统稳定性 限流算法 企业号10月PK榜 弹性设计

Java21上手体验-分代ZGC和虚拟线程 | 京东云技术团队

京东科技开发者

Java ZGC 虚拟线程 企业号10月PK榜

ICCV 2023 | 当尺度感知调制遇上Transformer,会碰撞出怎样的火花?

阿里云大数据AI技术

人工智能

DAPP钱包单币丨多币丨LP质押挖矿系统开发

l8l259l3365

数划云受邀参与2023甄云用户大会,分享数据驱动经营新经济企业业财一体新路径

数划云

如何搭建一个集成导航与在线工具的个性化浏览器私有书签(附详细搭建教程)

百度搜索:蓝易云

云计算 Linux 运维 书签 Mtab

Spring扩展-自定义标签

飞桨大模型套件:一站式体验,性能极致,生态兼容

飞桨PaddlePaddle

nlp 大模型 套件 大语言模型

关系数据库:定义、模型、排名

Frank

关系型数据库

开放原子开源大赛 | OpenAnolis赛题正式启动,诚邀报名!

开放原子开源基金会

官宣|2023开放原子开发者大会来了!

开放原子开源基金会

软件测试/测试开发丨利用ChatGPT 生成自动化测试脚本

测试人

人工智能 程序员 软件测试 测试开发 ChatGPT

全场景流量验证系统 | 京东物流技术团队

京东科技开发者

系统设计 测试 企业号10月PK榜 流量验证

与客户携手共进|博睿数据客户最佳实践精选

博睿数据

可观测性

MySQL分区表详解

Java随想录

Java MySQL

央国企数字化转型的破局者:低代码引领变革,高效应对未来挑战

优秀

低代码 数字化转型 央国企数字化转型

有限状态机在国际计费中的应用探索 | 京东物流技术团队

京东科技开发者

状态机 有限状态机 企业号10月PK榜 系统应用

基于火山引擎云搜索服务的排序学习实战

字节跳动云原生计算

大数据 搜索引擎 云原生

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