PostgreSQL 技术日报 (4月21日)|2 款核心扩展更新,内核优化多点突破
⚙️ PostgreSQL技术文章 credcheck v4.7 版本已发布PostgreSQL credcheck 扩展 v4.7 版本已发布提供全面的凭证管理和密码安全功能。该扩展在用户创建、密码更改和用户重命名时强制执行各种密码策略包括凭证验证规则、密码过期、重用策略和身份验证失败处理。新版本引入了两个关键特性通过 credcheck.superuser_nocheck GUC 提供的超级用户绕过选项允许超级用户跳过密码策略检查以及通过 credcheck.disallow_password_change 实现的密码更改限制功能阻止用户修改其密码。此外v4.7 修复了 plpgsql 块中 password_valid_until 功能的问题并改进了密码有效性行为。升级需要重启 PostgreSQL 以重新加载库文件。https://pgnexus.ai/tech-blogs?urlhttps%3A%2F%2Fwww.postgresql.org%2Fabout%2Fnews%2Fcredcheck-v47-has-been-released-3277%2F pg_dbms_job v2.0 版本发布pg_dbms_job v2.0 已发布这是一个为 PostgreSQL 提供 Oracle DBMS_JOB 兼容性的扩展用于管理计划任务。此次重大版本将基于 Perl 的调度器重写为 C 语言的 PostgreSQL 后台工作进程显著提升了性能。主要改进包括新增 pg_dbms_job.naptime 配置参数默认100毫秒支持 job_queue_interval 参数使用小数值以及将 run_duration 字段改为使用时间间隔单位以提供更精确的时间跟踪。该扩展可创建和管理作业队列支持按计划执行或立即异步执行 SQL 命令、PL/pgSQL 代码或存储过程。https://www.postgresql.org/about/news/pg_dbms_job-v20-released-3278/ Postgres 中的写放大每次 INSERT 的 3-4 倍开销PostgreSQL 的写放大导致磁盘 I/O 比实际插入的逻辑数据多 3-4 倍。对于典型的写入密集型工作负载每个 1KB 的行会通过堆元组包含 MVCC 头、索引维护和 WAL 记录产生约 2.5KB 的实际写入。在大规模场景下50MB/秒的应用数据会变成 150-190MB/秒的磁盘写入。主要成因包括结构性的 WAL 双重写入不可避免的 2 倍最低开销和检查点后的全页写入。索引数量直接影响放大倍数每增加一个索引会增加约 0.3-0.5 倍的开销。通过调整检查点和优化索引可以将放大倍数降至约 2.5 倍但无法消除结构性底线。这种开销对事务型工作负载是合理的但对于从不更新或单独查询的仅追加遥测数据来说会造成效率损失。https://www.tigerdata.com/blog/write-amplification-in-postgres-the-3-4x-tax-on-every-insert PostgreSQL Hacker 电子邮件讨论精选 REPACK 添加并发选项讨论重点是修复 REPACK CONCURRENTLY 功能的权限问题。Justin Pryzby 报告了一个问题当表属主没有 REPLICATION 权限时超级用户无法在这些表上执行 REPACK CONCURRENTLY因为该操作会以表属主的权限运行。Antonin Houska 提出了一个补丁来移除 REPLICATION 属性要求Chao Li 确认这解决了他们遇到的同样问题。Alvaro Herrera 同意这个修复方案但在测试过程中发现了其他问题该功能还错误地要求 LOGIN 权限并且回归测试在 CI 环境中会出现initial slot snapshot too large错误。Tom Lane 对测试与 wal_levelminimal 的兼容性表示担忧指出核心回归测试在此配置下会失败可能破坏现有的测试基础设施。团队现在正在寻找不会干扰最小 WAL 级别测试的合适测试位置。https://www.postgresql.org/message-id/%3C22189.1776671085localhost%3E 实现 WAL LSN 重放等待机制重新设计Alexander Korotkov 整合了 WAIT FOR LSN 功能实现的待定补丁集。该补丁集包含了 Andres Freund 建议的内存屏障修复将 GetWalRcvWriteRecPtr() 改为使用 pg_atomic_read_membarrier_u64()相应的写操作使用 pg_atomic_write_membarrier_u64() 以获得更好的内存排序保证。Xuneng Zhou 贡献了几个补丁解决了唤醒机制和 ResetLatch() 改进问题。讨论重点关注如何确保读写操作之间的正确屏障语义以防止竞态条件。Andres 要求增加测试覆盖范围包括时间线边界跨越和边界情况等场景。最新版本包含了改进的测试覆盖范围和文档说明明确了 WAIT FOR LSN 是时间线无关的解决了之前关于等待者-唤醒者握手机制中内存排序的担忧。https://www.postgresql.org/message-id/%3CCAPpHfdupZ3ooxmnJvhjx7rnZ7VMcz_uyxGC4drMSEM_P3PtGzwmail.gmail.com%3E 通过移除 xl_heap_visible 降低 WAL 写入量最终支持按需设置 VM讨论的焦点是解决由最近的WAL优化更改导致的测试不稳定性该更改影响了页面标记为全可见的时机。Alexander Lakhin发现了btree_gist和plancache测试中的失败问题其中autovacuum进程现在以不同方式更新可见性统计信息导致意外的查询计划变化。对于btree_gist测试Melanie Plageman建议将受影响的表转换为临时表作为最干净的修复方案。对于plancache测试Alexander演示了通过添加analyze命令可以重现该问题该命令有时会更新relallvisible统计信息。Melanie提出两个解决方案将analyze命令移到索引创建之前以及在测试表上禁用autovacuum以防止自动vacuum/analyze操作。团队认识到这可能是一个持续性问题随着类似测试失败的出现需要逐案处理。https://www.postgresql.org/message-id/%3CCAAKRu_arG0imObUfqtr8tjJzynqdn3qk9kUP1hdF3VmGms6gmail.gmail.com%3E 发布时跳过模式更改Vignesh 发现了一个目录一致性问题当通过 EXCEPT 子句包含在发布中的表被修改为 UNLOGGED 时会出现问题。目前当 EXCEPT 子句中列出的表被修改为 UNLOGGED 时操作会成功执行但会在 pg_publication_rel 中留下过期条目因为 UNLOGGED 表无法进行复制。提议的补丁会在表被修改为 UNLOGGED 时自动从 pg_publication_rel 中删除这些条目并发出 NOTICE 通知用户。虽然考虑过抛出错误的替代方案但被认为过于严格而被拒绝因为 UNLOGGED 表不会生成 WAL 且本身就不会被复制。该补丁旨在维护目录一致性同时允许将表转换为 UNLOGGED 这一合理用例。https://www.postgresql.org/message-id/%3CCALDaNm2VghC-CSyS6jwyMMcpwSWjQ09t9AkkL0Sz7dsb1VGF3Amail.gmail.com%3E️ 行业新闻 Tim Cook卸任Apple CEOJohn Ternus接棒Apple宣布重大领导层变动Tim Cook在担任CEO超过十年后即将卸任。现任硬件工程高级副总裁John Ternus将于2026年9月初接任CEO职位。这标志着这家科技巨头的关键转折点Cook自2011年接替Steve Jobs以来带领Apple推出了多款重要产品并实现业务扩张。Ternus在Apple硬件产品开发中发挥了核心作用包括Mac、iPad等关键设备的研发。此次交接正值Apple在人工智能领域面临激烈竞争、服务业务持续扩张的关键时期。这一人事变动是科技行业最重大的高管更迭之一。https://techcrunch.com/2026/04/20/tim-cook-stepping-down-as-apple-ceo-john-ternus-taking-over Vercel 确认遭遇安全事件客户数据被窃取网页应用托管平台Vercel披露了一起导致客户数据被盗的安全事件。该公司将此次事件归咎于AI代码助手服务Context AI此前遭受的攻击。黑客利用Context AI的漏洞劫持了Vercel一名员工的账户获得了对Vercel系统和客户信息的未授权访问。Vercel确认攻击期间敏感客户数据被窃取。此次事件凸显了互联技术生态系统中连锁安全风险一个服务的漏洞可能被利用来攻破另一个平台。Vercel已通知受影响客户并着手加强安全措施。该事件反映出业界对云基础设施供应链安全以及跨平台横向攻击可能性的日益担忧。https://techcrunch.com/2026/04/20/app-host-vercel-confirms-security-incident-says-customer-data-was-stolen-via-breach-at-context-ai NSA 绕过五角大楼分歧秘密采用 Anthropic 的 Mythos AI 模型据报道美国国家安全局(NSA)正在使用Anthropic受限的Mythos AI模型开展情报工作尽管该AI公司与五角大楼关系紧张。Mythos被描述为一个高度受限的AI系统其能力超越Anthropic公开发布的模型。情报机构使用这一先进AI工具引发了关于AI公司与国家安全机构关系的疑问。报道显示Anthropic与国防部门之间存在复杂动态关系该公司既维护商业AI产品同时又向情报界提供专用工具。这一进展凸显了人工智能与国家安全日益交织的趋势以及AI安全原则与政府情报需求之间的潜在冲突。五角大楼争端的背景为理解相关运营和伦理边界增添了复杂性。https://techcrunch.com/2026/04/20/nsa-spies-are-reportedly-using-anthropics-mythos-despite-pentagon-feud 社交媒体动态 本周大家都在用Postgres构建什么项目?这是一条周一问候帖子询问社区成员当前正在使用 PostgreSQL 数据库构建什么项目。这个帖子看起来是与开发者和数据库管理员的日常交流旨在鼓励大家分享目前的工作内容促进围绕 PostgreSQL 开发活动的社区讨论。https://www.linkedin.com/posts/pgedge_dev-dba-programming-activity-7451977306153259009-o-TI LakeflowConnect推出免费套餐提供企业级数据集成能力Lakeflow Connect 推出免费套餐为用户提供企业级数据集成服务。该套餐包含 30 多个内置连接器可无缝接入各类 SaaS 应用和数据库。每个工作空间每日可获得 100 个免费数据库单元支持处理多达 1 亿条记录。平台通过 Unity Catalog 提供统一治理功能包括完整的数据血缘追踪和安全保障。此免费套餐旨在为 AI 智能体提供全面…https://www.linkedin.com/posts/databricks_lakeflow-connect-now-includes-a-free-tier-activity-7452018761978634240–fN0 PostgreSQL主版本升级历来具有破坏性PostgreSQL 主版本升级传统上需要使用 pg_upgrade 进行破坏性停机。现在出现了一种使用 Spock 和 CloudNativePG 的蓝绿部署方案。Spock 在数据和模式层面使用逻辑复制允许不同 PostgreSQL 版本同时运行并进行复制。升级流程包括启动新节点、让 Spock 从现有数据引导这些节点、验证数据正确性然后切换。He…https://www.linkedin.com/posts/pgedge_postgres-devops-dba-activity-7452008829321564161-FcqL