PostgreSQL 技术日报 #1|硬核干货 + 内核暗流一网打尽

⚙️ PostgreSQL 技术文章

🧩 Autobase 2.6.0 发布
Autobase 2.6.0 引入了蓝绿部署工作流程,可实现 PostgreSQL 升级的近零停机时间。该流程包括使用 Patroni 备用集群部署克隆集群,通过物理复制同步数据,在目标集群上自动升级 PostgreSQL,将其转换为逻辑副本,并在切换前持续接收实时变更。流量切换在几秒内完成,回滚同样快速且无数据丢失,通过反向逻辑复制实现。Autobase 是云托管数据库的开源替代方案,可自动化部署、故障转移、备份、升级和扩展,为高可用性 PostgreSQL 集群提供支持。
https://www.postgresql.org/about/news/autobase-260-released-3250/

🧩 MarketReader 如何使用 TimescaleDB 处理每分钟 3M 笔交易以提供美国市场交易洞察
MarketReader 是一家金融科技初创公司,使用 TimescaleDB 每分钟处理 300 万笔来自美国股票市场的交易,提供实时市场洞察。该公司从 NASDAQ 获取数据,涵盖 26000 只上市和 OTC 证券,通过 API 和 WebSocket 每十分钟向客户提供 700 次更新。他们的架构使用 Tiger Data 的 TimescaleDB 进行时间序列分析,结合 hypertables 实现自动分区、continuous aggregates 进行统计分析,以及通过 pgvector 实现向量搜索功能。该系统实时检测异常市场波动,为大型语言模型提供上下文以生成市场解释,服务于包括零售券商和机构投资者在内的客户。

🧩 INSERT ... ON CONFLICT ... DO SELECT: PostgreSQL v19 中的新功能
PostgreSQL v19 引入了 INSERT ... ON CONFLICT ... DO SELECT,这是现有 ON CONFLICT 子句的新变体。此功能允许带有 RETURNING 的 INSERT 语句在发生冲突时选择现有行,而不仅仅是什么都不做或更新。语法支持可选的行锁定和 WHERE 条件。当表具有生成列、触发器或修改插入值的数据类型时,此功能特别有用,因为它消除了需要单独的 SELECT 语句来从冲突行检索 ID 或其他生成值的需求。该功能补充了现有的 DO NOTHING 和 DO UPDATE 选项,提供了完整的 upsert 解决方案,避免了 MERGE 语句可能出现的竞态条件。
https://www.cybertec-postgresql.com/en/insert-on-conflict-do-select-a-new-feature-in-postgresql-v19/

🧩 Pg_QoS v1.0.0 稳定版已发布!
Pg_QoS v1.0.0,一个用于 PostgreSQL 服务质量资源治理的扩展,已发布稳定版本。该扩展使管理员能够通过 ALTER ROLE/DATABASE SET 命令执行按角色和按数据库的限制。主要功能包括通过将后端绑定到特定核心来限制 CPU 使用,并为并行工作进程提供规划器集成,跟踪和限制并发事务与语句,work_mem 会话限制,以及使用共享 epoch 机制的快速缓存失效。这有助于在同一 PostgreSQL 实例上运行的不同工作负载之间实现公平的资源分配。该扩展需要 PostgreSQL 15 或更高版本,CPU 限制功能需要 Linux。原生软件包适用于 Debian 13、Ubuntu 24.04、RHEL 10、AlmaLinux 10 和 CentOS Stream 10,覆盖所有支持的 PostgreSQL 版本。
https://www.postgresql.org/about/news/pg_qos-v100-stable-release-is-out-3251/
📨 PostgreSQL Hacker 电子邮件讨论精选
🧩 不要在读取流中同步等待已进行中的 IO
Melanie Plageman 正在开发一个补丁来改进读取流行为,通过不同步等待已在进行中的 IO 操作。讨论重点是代码审查反馈和测试改进。Nazir Bilal Yavuz 发现了一个错误,测试总是使用'worker' io_method 而不是预期的方法变量。Peter Geoghegan 建议将 ProcessBufferHit 设为内联函数以提升性能,特别是对于缓存的仅索引扫描。Melanie 在补丁 v4 中解决了这些问题,根据反馈将 ProcessBufferHit 重命名为 TrackBufferHit。她还审查了 Andres 的测试补丁,并对重复块和外部 IO 场景的测试用例提供了详细评论。关于是否应该将一些测试代码从 test_aio.c 移到 test_read_stream.c 的问题仍待解决,因为外部 IO 测试可能更多是关于 AIO 行为而非读取流功能。
🧩 修复 multixact Oldest*MXactId 初始化和访问中的错误
讨论跟进了最近推送的一个与 OldestMemberMXactId 初始化和预备事务处理相关的 multixact 错误修复。Sami Imseih 建议添加一个测试用例来验证对预备事务虚拟进程的正确处理,因为添加的断言不会覆盖这种情况。Yura Sokolov 支持为已修复的错误添加测试。Heikki Linnakangas 创建了 Sami 复现案例的简化版本,不需要并发会话,并将其移至主回归测试套件的'prepared_xacts'测试中。Tom Lane 建议了一个不相关的改进,通过在禁用预备事务时添加早期退出来减少 prepared_xacts_1.out 的维护工作。Heikki 同意并为此优化提供了补丁,计划将其反向移植到所有支持的版本,以便于将来的测试反向移植。
https://www.postgresql.org/message-id/120550bf-ca50-4a07-91b1-a88f1434ee8b@postgrespro.ru
🧩 使用 rdtsc 降低 EXPLAIN ANALYZE 的计时开销?
Lukas Fittl 提交了 RDTSC 补丁的 v10 版本,用于减少 EXPLAIN ANALYZE 的时序开销。更新版本根据反馈将 CPU 特性检测移至 pg_cpu_x86.c,添加了 TSC 不变位检查,并通过 MSR 读取支持 HyperV 虚拟机管理程序。他修改了默认 TSC 选择逻辑以匹配 Linux 内核行为,在 4 个或更少插槽的系统上当不变位和 TSC_ADJUST 位被设置时启用 TSC。补丁改为使用编译器内建函数处理 RDTSC/RDTSCP,避免了使编译时间翻倍的昂贵头文件包含。两个悬而未决的问题仍然存在:为用户实现更好的 TSC 错误报告,以及 RDTSCP 是否需要 LFENCE 指令来确保准确性。Andres Freund 对 HyperV 支持的 MSR 访问提出了安全担忧,建议从 sysfs 读取 CPU 频率等替代方案,尽管 Lukas 指出在 Azure VM 上 TSC 频率与 CPU 频率不匹配。
🧩 消除 xl_heap_visible 以减少 WAL(最终设置 VM on-access)
这个线程讨论了 Melanie Plageman 的 v35 补丁系列,用于消除 xl_heap_visible WAL 记录并实现访问时可见性映射更新。补丁涉及几个关键领域:将常用的剪枝上下文移至 PruneState,为已冻结页面添加快速路径,使用 GlobalVisState 进行页面级可见性确定,在查询执行期间跟踪修改的关系,以及允许访问时剪枝将页面设置为全可见而无需冻结。
Andres Freund 提供了关于性能考虑、VM 损坏处理和代码结构的详细技术反馈。他质疑 VM 缓冲区固定的时机,建议通过为冻结页面添加快速路径来改进剪枝性能,并讨论冲突范围计算。讨论涵盖何时检查 VM 损坏、是否始终跟踪可见性截止点,以及不同扫描类型的优化策略。
Chao Li 开始审查 v35 补丁,重点关注代码组织和 Assert 语句。Melanie 通过重构代码、在 heap_page_prune_and_freeze()开始时添加损坏检查、为全可见页面实现快速路径以及始终跟踪最新活跃 XID 来解决反馈。她在 v35-0017 中发现了一个严重错误,其中 rel_read_only 参数逻辑被颠倒了,计划在 v36 中修复。
🧩 在发布中跳过架构更改
讨论重点关注 PostgreSQL 发布功能中 EXCEPT TABLES 特性 v54 补丁的改进。Amit Kapila 提出了几个小意见,包括为发布名称分隔符添加翻译注释,质疑变量命名选择,建议将测试文件从 037_rep_changes_except_table.pl 重命名为 037_except.pl 以支持未来语法变化,以及要求检查有关 ALTER PUBLICATION 支持的注释准确性。Shveta Malik 同意这些建议并指出了一个语法错误。Nisha Moond 发现了一个 bug:分区描述错误地显示它们被排除的发布名称,测试代码中使用订阅名称而非发布名称的错误,拼写错误和格式问题。Shlok Kyal 回应了所有反馈并发布 v55 补丁,确认修复了分区显示问题、测试代码更正、拼写错误,并采纳了之前审查者的建议。
🧩 流式复制和 WAL 归档交互
Andrey Borodin 重新提起了一个关于 PostgreSQL 共享归档模式的老讨论,以解决数据中心故障期间 WAL 归档缺失的问题。该问题出现在 HA 设置中,当主服务器故障时 - WAL 文件可能已流式传输到备库但在归档中缺失,导致 1-2% 的集群出现 PITR 时间线缺口。当前的解决方案如 archive_mode=always 配合 WAL-G 等工具由于解密和比较开销而成本高昂。Borodin 提出了一种"共享"归档模式,其中备库保留 WAL 直到归档完成,该方案融合了 Heikki 原始补丁和 Greenplum 工作的思想。三部分补丁集包括带测试的重新基线、时间线切换改进以及 archive_status 目录扫描优化。Jaroslav Novikov 添加了缺失的参考文献以支持讨论。
https://www.postgresql.org/message-id/F02ECB2F-0FA9-432F-8E53-4D1EE9C0E7CA@yandex-team.ru
🗞️ 行业新闻

🧩 Claude Code 推出语音模式功能
Anthropic 宣布在 Claude Code 中推出语音模式,这标志着 AI 编程辅助领域的重要进展。这一新功能允许开发者使用语音命令与 Claude Code 进行交互,通过实现免手操作的编程和调试来提升编程体验。语音功能代表了 Anthropic 在 AI 编程领域更有效竞争的努力,该领域的公司正越来越多地致力于让编程工具更加易用和直观。此次推出展现了将语音界面集成到开发工具中的增长趋势,可能会让偏好语音交流而非传统文本交互的开发者提高编程效率。

🧩 上个月,仅有三家公司主导了 189 亿美元的风险投资
根据 Crunchbase 数据,2026 年 2 月全球风险投资向初创公司投入了创纪录的 1890 亿美元,其中人工智能公司获得了总资本的压倒性 90%。这一巨额资金激增被仅仅三家公司主导:OpenAI、Anthropic 和 Waymo,它们共同吸收了这些投资的大部分。这种前所未有的风险投资集中度突显了投资者对 AI 技术和自动驾驶系统的强烈兴趣。数据揭示了初创公司融资格局的极端两极分化,AI 公司正在吸引巨额估值,而其他行业从风险投资家那里获得的关注明显较少。

🧩 TikTok 在美国部分地区因 Oracle 销售后第二次中断而宕机
由于 ByteDance 剥离其美国业务后的第二次 Oracle 基础设施故障,TikTok 在美国的部分用户遇到了服务中断。此次故障影响了 TikTok 的功能,阻止用户正常访问平台。这标志着所有权转移以来第二次重大的 Oracle 相关服务中断,引发了对新基础设施安排可靠性的质疑。这次中断发生在 ByteDance 完成 TikTok 美国业务出售后仅几天,突显了平台向新所有者和基础设施提供商转移过程中潜在的技术挑战。此次故障凸显了运营大规模社交媒体平台所涉及的复杂技术依赖性。
🌐 社交媒体动态
🧩 Databricks 社区的新家来了
Databricks 用户组平台是一个新的集中式在线中心,供数据和人工智能社区连接、学习和成长。用户可以加入本地分会或虚拟兴趣小组与他人联系,发现并报名参加即将举行的社区活动来学习,还可以申请成为组织者来主持自己的聚会。该平台旨在让 Databricks 社区成员更容易相互交流并提升他们在数据和人工智能领域的技能。

🧩 构建需要数据库访问的 AI 代理?
本次活动公告宣传了一场关于 PostgreSQL 的 pgEdge MCP 服务器的 Postgres Live 会议。会议将介绍模型上下文协议服务器是什么,以及为什么它比直接数据库连接更适合 AI 代理的智能方案。主题包括代币预算优化技术、更轻松快捷的数据库交互内置工具,以及与 Claude Code、Cursor 和其他平台集成的快速入门指南。该解决方案是 100%开源的,…
https://www.linkedin.com/posts/pgedge_postgresql-mcp-ai-activity-7434304132464812032-oai8

🧩 如果您正在组织聚会、PUG 或类似团体,并希望获得一些贴纸来向您的成员推广 PGConf.dev 🐘,请私信我。
作者正在向聚会组织者、PostgreSQL 用户组(PUG)或类似团体的组织者免费提供贴纸,用于向其成员推广 PGConf.dev( PostgreSQL 会议)。他们有多余的贴纸,愿意与社区组织者分享。有兴趣的一方应发送私信请求贴纸。
https://www.linkedin.com/posts/activity-7434318803724836864-TLSo
HOW 2026 议题招募中
2026 年 4 月 27-28 日,由 IvorySQL 社区联合 PGEU(欧洲 PG 社区)、PGAsia(亚洲 PG 社区)共同打造的 HOW 2026(IvorySQL & PostgreSQL 技术峰会) 将再度落地济南。届时,PostgreSQL 联合创始人 Bruce Momjian 等顶级大师将亲临现场。
自开启征集以来,HOW 2026 筹备组已感受到来自全球 PostgreSQL 爱好者的澎湃热情。为了确保大会议题的深度与广度,我们诚邀您提交前沿技术实践与洞见,共同打造高质量议题内容。

浙公网安备 33010602011771号