开源云原生数据库PolarDB PostgreSQL 15兼容版本正式发布

简介: PolarDB进行了深度的内核优化,从而实现以更低的成本提供商业数据库的性能。

开源云原生数据库PolarDB PostgreSQL 15兼容版正式发布上线,该版本100%兼容开源PostgreSQL 15。PolarDB是阿里云自研云原生关系型数据库,基于共享存储的存算分离架构使其具备灵活弹性和高性价比的特性,在开源PostgreSQL很好的性能表现的基础上极大增强了可扩展性和弹性。

PolarDB for PostgreSQL 架构

PolarDB采用云原生架构,相较于传统架构,其两大突破性改革为:存储计算分离、基于共享存储的一写多读。存储计算分离架构解决了传统架构的2大弊端:单机存储容量限制和弹性升降配需要迁移数据。得益于共享存储的设计,存储成本大幅降低的同时,减少多副本复制延迟和回放成本,从而可以进行高效的读能力扩展。PolarDB架构如下图所示:

PolarDB云原生架构具有以下优势:

  • 高扩展性:支持一写多读,最高可扩展到16个计算节点(1写15读),存储计算分离,分钟级加减节点;
  • 高可用性:毫秒级延迟,秒级切换,支持跨AZ高可用;
  • 更低成本:多个计算节点共享一份数据,大幅降低存储成本;
  • 混合负载:支持多节点并行查询,随着计算资源的增加,性能可以线性提升,相较于单机平均加速23倍,可以支持HTAP混合负载。


PolarDB进行了深度的内核优化,从而实现以更低的成本提供商业数据库的性能。主要技术包括:自研的分布式文件系统支持共享存储,日志索引LogIndex技术加速只读节点回放,Online Promote技术实现秒级切换,Persistant BufferPool、Direct IO等实现共享存储架构下的数据一致性和低复制延迟。同时PolarDB进行了深入的性能优化,例如优化 SIMD 指令集和原子操作指令集的使用,在事务处理等模块中加速高并发场景性能,支持批量读取、扩展数据页面,优化 IO 性能,并进行了深入的参数调优,提供了极致性能。此外,在首个发布版本中还支持GBK/GB18030 字符集,以及以下插件:hll、hypopg、log_fdw、pase、pg_bigm、pg_cron、pg_jieba、pg_repack、pg_similarity、pgtap、pgvector、pldebugger、prefix、roaringbitmap、rum、varbitx、zhparser。

PostgreSQL 15关键提升

相较于之前版本,PostgreSQL 15版本发布侧重于性能提升,在管理本地和分布式部署中的工作负载方面成效显著,对逻辑复制进行了多项改进,提高了排序性能。该版本增强了 SQL 功能,引入了MERGE命令;大幅改进了逻辑复制功能,例如支持复制 2PC 事务,发布内容可以使用 WHERE 进行过滤,一次性发布 schema 下所有的表;优化了数据库性能,例如更快的内存排序和基于磁盘的排序,内存占用降低,崩溃恢复加速等。

PostgreSQL核心组成员Jonathan Katz表示:“PostgreSQL开发者社区持续构建那些改善开发人员体验,并简化那些支持高性能数据工作负载的功能, PostgreSQL 15 展示了如何通过开放式软件开发,为我们的用户提供一个非常适合应用程序开发并保证其关键数据安全的数据库。”

PostgreSQL 是一个创新的数据管理系统,以其可靠性和健壮性著称,得益于全球开发者社区 超过25年的开源开发,它已成为各种规模组织首选的开源关系型数据库。

排序及压缩性能提升

在这个最新版本中,PostgreSQL 改进了其内存和磁盘排序 算法,基准测试显示,在对不同数据类型的排序时,速度可提高25%到400%不等 。使用 row_number()rank()dense_rank()count() 作为窗口函数 在 PostgreSQL 15 中也有性能上的优化。使用 SELECT DISTINCT 的查询现在可以并行执行

基于之前PostgreSQL版本 的异步远程查询功能,PostgreSQL外部数据包装器postgres_fdw ,现在可支持异步提交

PostgreSQL 15 的性能改进也扩展到了归档和备份工具。 PostgreSQL 15 增加了对 预写日志(WAL) 文件 LZ4和Zstandard (zstd)的压缩支持,这可以在一定的工作负载下获得空间和性能上的改进。在一些操作系统上,PostgreSQL 15 增加了对WAL页面的预载支持 以帮助加快恢复时间。 PostgreSQL内置备份命令pg_basebackup ,现在支持服务器端的备份文件压缩,可以选择gzip、LZ4和zstd格式。 PostgreSQL 15 包含了使用自定义模块进行归档 的能力,从而减少了使用 shell 命令的开销。

开发人员特色功能

PostgreSQL 15 包含 SQL 标准的 MERGE 命令。MERGE允许用户编写包含 INSERTUPDATEDELETE操作的SQL语句。

最新版本增加了使用正则表达式的新函数 来检查字符串: regexp_count(), regexp_instr(), regexp_like(),和 regexp_substr()。 PostgreSQL 15还扩展了 range_agg 函数来聚合上一个版本 引入的 multirange 数据类型

PostgreSQL 15 允许用户使用访客权限而不是视图创建者权限创建视图 。这个选项被称为 security_invoker,它增加了一层额外的保护,以确保视图调用者使用正确权限处理底层数据。

更多逻辑复制选项

PostgreSQL 15 为管理逻辑复制 提供了更多的灵活性。这个版本为Publishers引入了行筛选数据列列表 来允许用户选择从表中复制数据的子集。PostgreSQL 15 增加了一些功能来简化冲突管理 ,包括跳过重新执行冲突事务的能力,以及在检测到错误时自动停止订阅的能力。该版本还支持在逻辑复制中使用两阶段提交(2PC)。

日志和配置增强

PostgreSQL 15 引入了一种新的日志格式:jsonlog 。 这种新格式使用JSON结构输出日志数据,这允许在结构化日志系统中处理PostgreSQL日志。

该版本在管理PostgreSQL配置方面为数据库管理员提供了更大的灵活性,增加了授予用户更改服务器级配置参数的权限的能力。此外,用户现在可以使用psql 命令行工具中的\dconfig命令搜索有关配置的信息。

其他值得关注的改动

PostgreSQL服务器级的统计数据现在收集到共享内存,去除了统计收集进程以及定期将这些数据写入磁盘的过程。

PostgreSQL 15 使ICU 排序 作为集群或单个数据库的默认排序规则成为可能。

该版本还增加了一个新的内置扩展pg_walinspect ,它允许用户直接从SQL接口检查预写日志文件的内容。

PostgreSQL 15 还允许除数据库所有者之外,从 public (或default)模式的数据库中 撤销所有用户的CREATE权限

PostgreSQL 15 删除了长期被弃用的“独占备份”模式,也删除了PL/Python中对Python 2的支持。

关于社区的详细发布信息,请参考社区公告:https://www.postgresql.org/docs/15/release-15.html

升级指导

在PolarDB PostgreSQL 14 版本升级到PostgreSQL 15 版本的过程中,大部分的数据类型、内置函数、表列和对象都没有发生显著变化,大多数变化属于细节改进。通过逻辑复制等方式可以实现接近100%的兼容性,而具体的变化细节如下所示。

类型

禁止零长度Unicode 标识符,例如U&""。

防止数字文本有非数字结尾的字符,例如 123abc 会被解析为 123。

调整JSON数字文本处理方式,以匹配SQL / JSON标准。现在可以接受 1.和.1 输入了,同时不接受非数字结尾,例如1.type()。

当interval输入的单位分数值大于月份时,四舍五入到最接近的月份,例如 1.99 year 转换到 2years,而非过去的 1 year 11 months。

提高interval与尾随句点解析的一致性。

"char":更改非 ASCII 字符的输入输出格式,将会以八进制展示。

函数与表达式

array_to_tsvector():如果传入一个空字符串数组元素,将会产生错误。

chr():当提供负参数时,将会产生错误。

将输出类型为 interval 的函数标记为 stable,而非 immutable,因为它依赖于IntervalStyle。

检查调整时间间隔函数中的整数溢出,这会影响justify_interval(), justify_hours(), and justify_days()函数。

改进计算算法random():即使种子值相同,这也会导致random()的结果与之前版本的结果不同。

查询优化

将hash_mem_multiplier默认值增加到 2.0,这会导致查询哈希操作比其他操作使用更多的 work_mem 内存。

防止CREATE OR REPLACE VIEW改变输出列的排序规则。

权限

删除登录角色的对自身默认的 ADMIN OPTION 权限。过去登录角色可以添加/删除其自身角色的成员,即使没有ADMIN OPTION 权限。

允许逻辑复制作为订阅的所有者运行 。

阻止对订阅所有者没有 SELECT 权限的表进行逻辑复制操作 (UPDATE DELETE)。

其他

删除排他备份及相关函数。

删除对 python2 的支持。

删除 xml_is_well_formed 函数。

libpq的PQsendQuery()函数不再支持管道模式,可能会导致部分应用程序或者驱动不兼容。

删除过时的 DB 参数 stats_temp_directory。

当EXPLAIN引用会话临时对象的 schema 时,将其称为pg_temp,过去 schema 名称也会被包含在内。

了解更多

开源云原生数据库PolarDB社区:https://openpolardb.com/home

PolarDB for PostgreSQL开源代码仓库:https://github.com/ApsaraDB/PolarDB-for-PostgreSQL

云原生数据库 PolarDB PostgreSQL 商业版:https://www.aliyun.com/product/apsaradb/polardbpg

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
10月前
|
SQL 关系型数据库 MySQL
开源新发布|PolarDB-X v2.4.2开源生态适配升级
PolarDB-X v2.4.2开源发布,重点完善生态能力:新增客户端驱动、开源polardbx-proxy组件,支持读写分离与高可用;强化DDL变更、扩缩容等运维能力,并兼容MySQL主备复制及MCP AI生态。
开源新发布|PolarDB-X v2.4.2开源生态适配升级
|
10月前
|
SQL 关系型数据库 MySQL
开源新发布|PolarDB-X v2.4.2开源生态适配升级
PolarDB-X v2.4.2发布,新增开源Proxy组件与客户端驱动,支持读写分离、无感高可用切换及DDL在线变更,兼容MySQL生态,提升千亿级大表运维稳定性。
2143 24
开源新发布|PolarDB-X v2.4.2开源生态适配升级
|
11月前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。
|
人工智能 关系型数据库 MySQL
开源PolarDB-X:单节点误删除binlog恢复
本文由邵亚鹏撰写,分享了在使用开源PolarDB-X过程中,因误删binlog导致数据库服务无法启动的问题及恢复过程。作者结合实践经验,详细介绍了在无备份情况下如何通过单节点恢复机制重启数据库,并提出了避免类似问题的几点建议,包括采用高可用部署、定期备份及升级至最新版本等。
|
供应链 关系型数据库 分布式数据库
2025开源之夏火热报名|一起来设计PolarDB Dashboard
2025开源之夏正在火热报名中,PolarDB邀请全球学子参与云原生与Web开发的前沿项目。活动由中国科学院软件研究所发起,旨在鼓励高校学生通过实际开发维护开源软件,培养优秀开发者,推动开源生态发展。PolarDB项目聚焦设计与开发PolarDB-X Dashboard,要求掌握K8S Client-go和Web开发技术。参与者将根据项目难度获得税前8000至12000元人民币报酬,并获取结项证书。每位学生仅可申请一个项目,详情见官网。
2025开源之夏火热报名|一起来设计PolarDB Dashboard
|
SQL 关系型数据库 分布式数据库
PolarDB开源数据库入门教程
PolarDB是阿里云推出的云原生数据库,基于PostgreSQL、MySQL和Oracle引擎构建,具备高性能、高扩展性和高可用性。其开源版采用计算与存储分离架构,支持快速弹性扩展和100%兼容PostgreSQL/MySQL。本文介绍了PolarDB的安装方法(Docker部署或源码编译)、基本使用(连接数据库、创建表等)及高级特性(计算节点扩展、存储自动扩容、并行查询等)。同时提供了性能优化建议和监控维护方法,帮助用户在生产环境中高效使用PolarDB。
3643 21
|
存储 关系型数据库 分布式数据库
PolarDB开源进阶篇:深度解析与实战优化指南
PolarDB是阿里云开源的云原生数据库,采用计算-存储分离架构,结合高性能共享存储与Parallel Raft多副本一致性协议,实现微秒级延迟和卓越性能。本文深入解析其架构设计,涵盖智能调度层、性能优化技巧(如查询优化器调优和分布式事务提升)、高可用与容灾配置、扩展功能开发指南以及监控运维体系。同时,通过电商平台优化案例展示实际应用效果,并展望未来演进方向,包括AI结合、多模数据库支持及Serverless架构发展。作为云原生数据库代表,PolarDB为开发者提供了强大支持和广阔前景。
712 16
|
存储 Cloud Native 关系型数据库
PolarDB开源:云原生数据库的架构革命
本文围绕开源核心价值、社区运营实践和技术演进路线展开。首先解读存算分离架构的三大突破,包括基于RDMA的分布式存储、计算节点扩展及存储池扩容机制,并强调与MySQL的高兼容性。其次分享阿里巴巴开源治理模式,涵盖技术决策、版本发布和贡献者成长体系,同时展示企业应用案例。最后展望技术路线图,如3.0版本的多写多读架构、智能调优引擎等特性,以及开发者生态建设举措,推荐使用PolarDB-Operator实现高效部署。
609 4
|
存储 关系型数据库 MySQL
开源PolarDB- X|替换Opengemini时序数据场景下产品力校验
本文作者:黄周霖,数据库技术专家,就职于南京北路智控股份有限公司,负责数据库运维及大数据开发。

相关产品

  • 云原生数据库 PolarDB