PostgreSQL 技术日报 (4月6日)|内核补丁与性能优化速递

张开发
2026/6/19 1:05:44 15 分钟阅读
PostgreSQL 技术日报 (4月6日)|内核补丁与性能优化速递
关注【IvorySQL开源数据库社区】公众号即可获取 PostgreSQL 一手干货与最新动态 PostgreSQL Hacker 电子邮件讨论精选 REPACK [CONCURRENTLY] 选项的实现与应用讨论重点关注为REPACK功能实现数据库特定的逻辑复制优化。Antonin Houska建议在OutputPluginOptions中添加标志位而非使用全局变量来指示解码过程中是否需要共享目录。Alvaro Herrera接受了这个方案但对具体的代码修改表示担忧特别是在使用数据库特定事务信息时防止xmin后退的xmin处理修改。这些变更涉及通过LogStandbySnapshot()发出额外的WAL消息并在SnapBuildProcessRunningXacts()中进行特殊处理。Alvaro要求添加更详细的注释来说明这种方法的副作用和安全性考虑。他还发布了REPACK基础补丁的v55版本称其几乎可以提交只需进行一些美化调整包括对reform_tuple()的性能改进和worker关闭回调的清理。https://www.postgresql.org/message-id/202604042326.nwa4o5sezj77alvherre.pgsql 实现等待 WAL LSN 回放的重新设计Alexander Korotkov宣布计划在v19功能冻结前推送三个WAL LSN重放等待功能的小补丁。第一个补丁避免在WaitStmtResultDesc()中进行syscache查找并移除冗余注释。第二个修改wait_for_catchup()以使用WAIT FOR LSN在not_in_recovery结果时回退到轮询避免单独的pg_is_in_recovery()查询并解释恢复冲突处理机制。第三个在文档中添加关于可能的恢复冲突及其原因的说明。这些更改基于Xuneng Zhou之前的修复该修复根据Heikki的建议重新定位了PerformWalRecovery中的WaitLSNWakeup调用以防止恢复操作期间错过唤醒信号。Korotkov计划在周一推送除非有异议。https://www.postgresql.org/message-id/CAPpHfds7oSCbZqob7ytT_Lso8fv-NW8LnedUTE4Krde3rkJeAmail.gmail.com 共享数据结构的更好管理方案和可调整大小的实现Heikki Linnakangas 正在主导 PostgreSQL 共享内存分配系统的全面重构补丁涵盖了改进的管理 API 和对可调整大小共享结构的支持。讨论涉及 Matthias van de Meent 的详细代码审查和 Ashutosh Bapat 的贡献。主要反馈包括对 ShmemStructDesc 必要性的担忧、pgindent 的格式问题以及 LwLock 分配请求的顺序问题。Ashutosh 添加了使用 madvise() API 的可调整大小共享内存功能仅限于使用基于 mmap 共享内存的 Linux 系统。最近讨论集中在 API 设计选择上特别是使用编译时标志如 HAVE_RESIZABLE_SHMEM 还是运行时检查以及 pg_shmem_allocations 中大小跟踪的细节。最新的 v12 补丁解决了大部分反馈Heikki 整合了回调参数并表示设计已趋于稳定。https://www.postgresql.org/message-id/CAEze2WjgCROMMXY0j8FFdm3iFcr7By-6MwizPgGSEydiW3Amail.gmail.com 减少 xl_heap_visible 记录以降低 WAL 开销后续可考虑实现访问时设置 VMPostgreSQL回归测试中发现了与xl_heap_visible消除补丁提交378a21618相关的测试失败。使用CFLAGS-DRELCACHE_FORCE_RELEASE和io_methodsync运行时temp测试失败并出现ERROR: no empty local buffer available错误。Melanie Plageman解释说这是因为访问时剪枝需要为可见性映射额外固定一个缓冲区而读取流已经消耗了大部分后端本地固定限制。查询需要固定至少两个缓冲区但只剩一个可用。Andres Freund建议修改GetLocalPinLimit()返回更小的值比如num_temp_buffers/4而不是全部数量因为可能同时运行多个扫描目标是防止不成比例的固定而非保证每次扫描的特定固定可用性。https://www.postgresql.org/message-id/CAAKRu_bX-P26hB96i2vG40PhJB_5LARuNHV4SJngMPap8H3Amail.gmail.com 社交媒体动态 Genie Code 是您的自主AI数据工作伙伴Genie Code 是一个专为数据工作设计的自主AI助手能够构建数据管道、调试问题并维护生产系统。它通过主动监控后台的数据管道和模型来运行。该系统集成了 Unity Catalog 和 Lakehouse Federation能够理解企业的数据环境和治理要求。https://www.linkedin.com/posts/databricks_databricks-x-mirakl-activity-7446273168303992832-AYOD HOW 2026 报名进行中一场真正以技术为核心的 PostgreSQL 大会HOW 2026 PostgreSQL IvorySQL 技术峰会火热报名中 2026 年 4 月 27 日 - 28 日济南

更多文章