开源数据库PostgreSQL全球开发组近日发布了PostgreSQL 15,该最新版本强化了数据库操作性能,并进一步改进了包括排序等操作在内的本地和分布式部署的工作负载。
PostgreSQL 15 版本还添加了流行的 MERGE 命令、启用 zstd 和 LZ4 压缩支持,以及更多用于观察、调整数据库状态的功能。
值得一提的是,在此次发布的PostgreSQL 15版本中,HashData研发工程师参与了多项代码贡献,成为推动PostgreSQL技术创新的关键力量。
在最新版本中,PostgreSQL优化了内存和磁盘的排序算法,基准测试显示根据排序的资料类型,可获得达25%~400%的性能加速。使用row_number、rank、dense_rank和count作为窗函数,在PostgreSQL 15也可获得性能优势。同时,新版本PostgreSQL中也新增了对SELECT DISTINCT查询做平行执行的支持。
PostgreSQL 15性能改进的范畴也涵盖了存档和备份,增加了预写日志记录(WAL)文件对LZ4和zstd压缩支持。这对于特定工作负载来说,可以同时在空间和性能上获得好处,在部分操作系统中,PostgreSQL 15还增加了WAL中引用预截取页面的支持,提供了更快的恢复速度。
PostgreSQL内置的备份指令pg_basebackup,现在则开始支持服务器端的备份文件压缩,用户可以在gzip、LZ4和zstd中*选择压缩方案。另外,PostgreSQL 15让用户可以使用自定义模块进行存档,以消除使用shell层命令的额外成本。
开发者功能更新方面,PostgreSQL 15加入SQL标准MERGE指令,使开发者可以编写条件SQL语句。这些语句可在单一语句中包含INSERT、UPDATE和DELETE操作。最新版本添加了使用正规表达式检查字符串的函数,诸如regexp_count、regexp_instr、regexp_like和regexp_substr,为开发者进行检查和测试提供了更便利的环境。
PostgreSQL增加了逻辑复写功能的灵活性,为发布者提供了列过滤和行列表功能,使用户可以选择从表格中所要复制的资料子集。PostgreSQL 15为用户提供了更多处理冲突的手段,例如跳过重播冲突交易,以及在侦测到错误时,自动停用订阅功能等方式。
HashData作为基于云原生架构的数据仓库,100% 兼容开源数据库 PostgreSQL 生态。同时,HashData研发工程师长期活跃于PostgreSQL社区,以各种形式积极参与社区的贡献中。
2022年以来,HashData 数据库内核研发工程师张明礼(Zhang Mingli) 参与贡献 PostgreSQL 代码达 16 次,包括 7 个 Author Commits , 8 个 Review Commits ,1个 Report Commits 。
其中不乏对一些PostgreSQL15中关键函数的修复。
例如The Internals of PostgreSQL()提到的ExecChooseHashTableSize()。做Hash Join的时候,需要预估表空间的大小,在一些极端情况下,会导致程序崩溃。张明礼在HashData产品中发现了这个潜在的问题,并且成功在PostgreSQL上进行了复现和修复。
HashData数据库内核研发工程师张明礼贡献信息
始于开源,回馈开源。 HashData 将立足于云原生数据仓库的研发和创新,以领先的技术推动开源技术发展,从开源使用者转向贡献者、引领者,打造出以云原生、分布式、分析型为核心高性能数据计算平台,助力大数据产业蓬勃发展。