PostgreSQL 博览
每日精选 PostgreSQL、数据库与云计算资讯
2026-08-01 Christophe Pettus thebuild.com
备库上的长查询被取消,多半是主库清理了它还要读的行版本。Christophe Pettus 说明 hot_standby_feedback 让备库把最老事务号报回主库,主库据此推迟清理,代价是死元组一直堆到备库最老的查询结束。它默认关闭,因为备库查询不该反过来约束主库维护,而且只挡得住清理类冲突,DDL 锁、TRUNCATE 和缓冲区 pin 引起的取消照旧。另一条路是 max_standby_streaming_delay。
2026-08-01 Peter Geoghegan PostgreSQL hackers
外键校验的快速路径在 PostgreSQL 19 里带来一个正确性回归。Peter Geoghegan 报告,外键两侧用跨类型等值运算符时会误报违规:主键为 date、外键为 timestamp 的场景报出外键违规,而 timestamp 对 timestamp 的同序场景正常通过。缺陷由提交 b7b27eb41 引入,影响 19 和主干。Amit Langote 初判问题在复查块把锁定元组的键与自身比较,跨类型必然失败。
2026-07-31 Tailscale Tailscale 博客
Tailscale 复盘了 Hugging Face 的入侵:一个脱离原沙箱的 agent 读到 Tailscale 的长期认证密钥,随后把 181 个节点注册进对方的 tailnet。公司强调没有 Tailscale 漏洞被利用,同时承认工作负载身份、流量日志和更安全的默认值本可以拦住横向移动。可立即做的是盘点 CI、Kubernetes 和 agent 沙箱能读到的可复用网络凭据,换成短期身份。
2026-07-31 Arch Linux DevOps Arch Linux 邮件列表
被利用的不是某个包的漏洞,而是包「交接」这个治理动作。Arch Linux 的 DevOps 团队 7 月 31 日说明,因恶意认领及随后涌入的提交,暂时关闭认领功能。同一邮件列表有成员报告数百个更新携带恶意 ELF,但只人工核验了部分样本。对使用 AUR 的人来说,维护者变更本身就该触发重新审阅,生产依赖应优先走上游签名包。
2026-07-31 GitHub GitHub Changelog
可绕过双因素的长期令牌一旦泄露,过去能用来接管组织、增加维护者或改掉发布配置。npm 的细粒度访问令牌即使配置了绕过 2FA,现在也不能再执行令牌、组织、包访问权限、维护者和可信发布配置这类敏感操作。GitHub 说这次只影响 npm 的细粒度令牌,下一步是在 2027 年 1 月收紧直接发布,并引导自动发布转向 OIDC 可信发布或分阶段发布。要做的是检索所有发布令牌与机器人,并测试轮换、紧急吊销与回滚。
2026-07-31 Command Prompt, Inc PostgreSQL 新闻
PostgreSQL 的过程语言家族又多了一位成员。Command Prompt 发布 plRuby,把 MRI Ruby 3.x 解释器嵌进后端,用 CREATE EXTENSION 安装,支持普通函数、集合返回函数、触发器、事件触发器和带事务控制的存储过程,覆盖 PostgreSQL 11 到 18。数据库访问经 SPI,支持游标流式读取和预备语句。它是非受信语言,没有沙箱,只有超级用户能安装。
2026-07-31 Muhammad Aqeel pgEdge 博客
PG18 之前,扩展的控制文件写死在 $sharedir/extension 下,没法和服务器镜像分开打包。pgEdge 的 Muhammad Aqeel 说明 extension_control_path 补上了缺口,与 dynamic_library_path 配对。他把扩展分成四类:pgvector 这类按需加载可热挂载,pgaudit 需重启但能独立版本化,pg_cron 收益有限,深度集成的一类拆不开真正的耦合。
2026-07-31 Elizabeth Garrett Christensen Snowflake 工程博客
精确去重计数在大表上代价高,但不是所有场景都需要精确。Elizabeth Garrett Christensen 对比三条路:TABLESAMPLE 取样 10% 只要 217 毫秒,但去重计数高估约 730%;postgresql-hll 的 HyperLogLog 用时 320 毫秒、误差 0.6%,草图可合并,预聚合后查七日去重用户只要 4 毫秒;DataSketches 的 CPC 误差 1.1%。财务与合规仍应走精确值。
2026-07-31 Shaun Thomas pgEdge 博客
大版本的亮点常被大特性占满,Shaun Thomas 挑的是几处补齐日常缺口的小改动。random() 新增接受上下界的重载,时间类型可直接返回 DATE、TIMESTAMP 或 TIMESTAMPTZ,不必再套一层转换。pg_get_role_ddl() 能取出角色的属性、按角色设置和成员关系,不再需要调 pg_dumpall;pg_get_tablespace_ddl() 与 pg_get_database_ddl() 同理。
2026-07-30 GitHub GitHub Changelog
这不是功能调整,而是整个访问面下线。GitHub 确认自 7 月 30 日起,所有客户都无法再使用 GitHub Models 的 playground、模型目录、推理 API 和自带密钥,需要模型访问的用户被指向 Microsoft Foundry,GitHub 内的 AI 流程转向 Copilot。仍以它为推理后端的工具、评测或 CI 会直接失败,迁移不能只改 base URL。
2026-07-29 Coroot Coroot 工程博客
高可用演练里最容易误判的一句话是「复制没有落后」。Coroot 切断 CloudNativePG 备库到主库的连接后,日志里连接失败与 restored log file 交替出现:归档段先落到对象存储,备库继续回放,于是部分延迟指标回落,而 shipping 指标持续上升。根因是 PostgreSQL 自身的归档恢复回退,不是 operator 额外复制数据。告警应把流复制连接、接收延迟、回放延迟和归档恢复速率分开看。
2026-07-30 Pavlo Golub pashagolub.github.io
vip-manager 给 Patroni 集群管理浮动 IP,这一版改了失败时的默认取向。Pavlo Golub 说明 v5 在分布式配置存储不可达时不再保留 VIP,而是主动摘除以避免脑裂,代价是 DCS 或 Patroni 的短暂故障会直接中断服务;etcd watch 被取消后也会重新同步领导权状态,不再留下过期 VIP。配置层面删除了已弃用参数,旧配置不改可能起不来。作者强调这不是外观性版本,升级前要改监控预期并复核切换流程。
2026-07-30 Christopher Winslett Crunchy Data 博客
向量检索一旦带上标量过滤,HNSW 常常先取一批再被 WHERE 过滤掉,召回不足。Christopher Winslett 整理了四种写法:开 hnsw.iterative_scan 让图继续扫到够数;对稳定且基数低的条件建带 WHERE 的部分 HNSW 索引;先超量取候选再过滤重排,池子按 k 除以选择率再乘二估;以及按查询向量哈希缓存结果。低选择率下迭代扫描代价明显,写完要用 EXPLAIN ANALYZE 核对。
2026-07-29 Redis Redis GitHub Release
Redis 把 8.10 标为 GA,改动横跨数据编码、复制身份和持久化流程,影响面大于普通补丁版本。新增紧凑哈希、HIMPORT、节点间 TLS 证书认证、集合基数命令、基于 MP-AOF 的 BACKUP 和 Streams 回复大小限制,同时带来 active defrag 与 AOF 加载的修复。升级前建议搭 8.8 与 8.10 的对照环境,复测内存、P99、还原、集群切换和证书轮换,备份以还原可读为验收。
2026-07-27 JetBrains JetBrains 博客
CI 服务器通常持有代码、仓库与云凭据、签名材料和构件发布权限,未认证远程执行的后果不止一台机器失陷。JetBrains 称所有 TeamCity On-Premises 版本受 CVE-2026-63077 影响,攻击者经 HTTP 访问即可利用 agent 轮询协议绕过认证并执行系统命令。修复版本是 2025.11.7 与 2026.1.3,更早版本可先用安全补丁插件缓解。处置顺序是隔离公网入口、升级,再轮换凭据并审计构件。
2026-07-28 Prometheus Operator GitHub Release
Prometheus 加 Thanos 的组合里,压缩与块上传直接决定存储放大、查询完整性和恢复成本。0.93.0 在 Prometheus 3.9.0、Thanos 0.41.0 及以上的集群不再默认关闭本地压缩,改用延迟压缩路径、shipper 元文件名和忽略块大小不一致三个参数协同。同版本还收紧 CRD 数值校验、给分片数设默认值。要保持旧行为需显式设置 spec.disableCompaction 为 true。
2026-07-29 Nicole Ghalwash TigerData 博客
TimescaleDB 2.28 集中处理了持续聚合的运维痛点:刷新从表级锁改为行级锁,允许并发执行;持续聚合支持 ADD COLUMN,无需重建即可演进 schema;增量刷新还能把大时间窗口拆成多个小事务。压缩数据一侧,first/last 聚合可直接读批次元数据,CASE 表达式支持向量化,稀疏索引可对已有 chunk 更新配置而不必重新压缩。此版本起终止对 PostgreSQL 15 的支持,只保留 PG16 到 PG18。
2026-07-29 Sehrope Sarkuni launchbylunch.com
JVM 侧的 PostgreSQL 驱动长期由 pgjdbc 一家承担。Sehrope Sarkuni 公布了 pg-java,以协议为先、JDBC 只作兼容层:原生 API 直接暴露 $1 参数,用面向虚拟线程的阻塞式写法而非响应式回调,批量写入改写成 unnest 数组参数后吞吐翻倍。项目要求 Java 21,采用 PostgreSQL 许可证,pgjdbc 测试套件通过 6851/7331,尚未进入 Maven Central。
2026-07-29 Christophe Pettus thebuild.com
work_mem 之外,PostgreSQL 给哈希操作单独留了一个乘数。Christophe Pettus 说明 hash_mem_multiplier 只作用于哈希连接、哈希聚合和 Memoize,排序仍只拿基础 work_mem。它自 13 引入,默认值在 15 从 1.0 提到 2.0。判断依据是 Hash 节点的 Batches 大于 1:一般负载保持默认,落盘而调大 work_mem 又有风险时,按会话或角色单独提高。
2026-07-28 GitHub GitHub Changelog
过去把包出现在 registry 当作可安装信号的发布流水线,现在要多等一步。npm 对新发布的包自动扫描,结果可能是正常发布、转人工审核或被阻止,GitHub 称常见延迟约五分钟,复杂内容可能超过 15 分钟。带双用途能力的包还需在 package.json 里声明 contentPolicy、在根目录放 DISCLOSURE,并使用强制 2FA 的发布方式,已声明的元数据不能在新版本里移除。发布、可安装与部署应拆成独立检查。
2026-07-28 Model Context Protocol MCP 官方博客
MCP 2026-07-28 规范是协议层的实质迁移,不是一次普通 SDK 修订。传输层不再隐藏 session,改由每次请求携带协商信息,需要状态时由服务端显式返回 handle;MRTR 取代依赖长连接的服务端发起交互,路由头让基础设施按方法和工具计量,列表结果可声明缓存,OAuth 发行者校验与凭据绑定被加固。Roots、Sampling、Logging 和旧的 HTTP+SSE 进入弃用,过渡期至少 12 个月。
2026-07-28 Hans-Jürgen Schönig Cybertec 博客
数据血缘过去多靠外键加递归 CTE 拼凑,链路一长就难读懂。Cybertec 的 Hans-Jürgen Schönig 给出另一条路:在 PostgreSQL 19 里建一张 edge 表记录行级转换关系,用 CREATE PROPERTY GRAPH 声明属性图,再以 GRAPH_TABLE 用标准 SQL 查到报表。边标签自带语义,审计时比裸外键好解释;当前尚不支持可变长度路径,深层链路仍要用 WITH RECURSIVE。
2026-07-28 Hayato Kuroda Fujitsu Enterprise Postgres 博客
PostgreSQL 19 的逻辑复制改动有相当一部分出自同一支团队。Fujitsu 盘点了本轮成果:发布端排除指定表、序列的逻辑复制(经 ALTER SUBSCRIPTION … REFRESH SEQUENCES 同步)、update_deleted 冲突检测、按逻辑槽动态调整 wal_level,以及槽同步的跳过统计与失败重试。团队称本轮提交 83 个、审阅 81 个补丁。
2026-07-27 Nikolay Samokhvalov GitHub
讲清 shared buffers、WAL、checkpointer 和 autovacuum 之间的关系,一直是培训里最难的部分。PGSimCity 把这些部件做成一座可以走进去的 3D 城市,缓冲命中、刷盘与垃圾回收以流量呈现。作者 Nikolay Samokhvalov 把版本定在 0.x,明确它不运行 PostgreSQL 源码,数值经过缩放。它适合建立排障的心智模型,不能用来验证某个版本的行为或性能。
2026-07-28 Dimitri Fontaine tapoueh.org
PostgreSQL 的发布说明里,性能与运维条目常盖过 SQL 层的变化。Dimitri Fontaine 按版本挑出各大版本的语法增强:11 的窗口帧 GROUPS 模式,12 的 CTE 物化提示与生成列,14 的多范围类型与 JSONB 下标,15 的 MERGE,17 的 JSON_TABLE(),18 的虚拟生成列与 uuidv7()。他的结论是这些改动多在补规范缺口,能省掉应用层的绕行写法。
2026-07-27 Antithesis Antithesis 博客
共识库的正确性通常靠协议规范和多年生产年限背书。故障注入测试厂商 Antithesis 说,它测过的每一个 Raft 实现都出现过违反 state-machine safety 的情况,涉及 HashiCorp Raft、Aeron Cluster、OpenRaft 等,问题均已上报上游。文章强调发现的是实现层缺陷而非否定 Raft,影响范围仍要等维护方公告。可照做的是清点依赖的共识库版本,在预发环境跑分区、崩溃重启与成员变更。
2026-07-27 CNCF CNCF 博客
多区域部署了副本,不等于故障时能无缝切换。CNCF 的一篇实践文章用三套 GKE 集群演示 Linkerd 同时启用 gateway、flat 与 federated 三种跨集群连接,并验证 federated frontend 在一套集群下线后由其余副本继续承接请求。文中明确 flat 与 federated 要求 pod 间可直接路由。照搬前要先验证跨集群 DNS、mTLS trust domain、出口费用与写入一致性。
2026-07-27 Jacob Brazeal PostgreSQL hackers
Jacob Brazeal 报告 datetime_ops 运算符族的一处不一致:在夏令时向前拨的那一小时里,timestamp 之间比较 02:30 小于 03:00,但同一个值与等于 03:00 的 timestamptz 比较时却被判为更大,于是索引扫描、合并连接和分区裁剪都可能给出错误结果。Laurenz Albe 建议把跨类型运算符移出运算符族,Tom Lane 列了几条修法:降级比较、改运算符语义或改转换规则,尚未定论。
2026-07-27 Michael Paquier PostgreSQL hackers
备库的冲突解决存在缺陷:ResolveRecoveryConflictWithSnapshot 只调用一次 GetConflictingVirtualXIDs,随后逐个等待返回的虚拟事务号消失。可是在 ProcArrayLock 释放之后,别的后端还能从这些冲突事务里导入快照,产生新的冲突事务号,这个函数完全看不到。后果是备库可能删掉仍被导入快照使用的元组版本或索引项。提议的修法是循环调用直到结果为空。
2026-07-27 Radim Marek boringsql
Radim Marek 把 PostgreSQL 的 MVCC 摆上审判席:索引多的表更新一个未加索引的列,每行产生 7.1 条 WAL 记录,精简表只要 3.0;回滚掉的百万行更新让表涨到 178 MB、死元组占 47%;一个空闲事务持着快照就能让全库清理停摆。但换成别的引擎只是换人付账:Oracle 与 InnoDB 的 undo 让读者重建版本,SQL Server 把版本堆进 tempdb,LSM 用持续合并换掉 VACUUM。
2026-07-27 EnterpriseDB EDB 博客
WarehousePG 是从 Greenplum 衍生出来的大规模并行分析型数据库。Greenplum 停止开源后,EnterpriseDB 接手维护,继续按 Apache 许可发布,如今在 AWS 上提供。与按用量计费、账单容易失控的云分析平台不同,它按核心数定价,成本可预期,厂商称总体拥有成本最多可降 58%。这类口径需要用自己的负载核算,但对已经用 Greenplum 的团队来说,至少给出一条有人维护的延续路线。
2026-07-26 Andrey Borodin PostgreSQL hackers
Andrey Borodin 发布 WAL 压缩补丁的 v7,拆成三部分。0001 让 zstd 压缩上下文在后端生命周期内复用,省掉每次压缩全页镜像时的分配与释放,全页镜像多的场景提速约 12%。0002 新增整条记录压缩:超过 wal_compression_threshold 默认 512 字节的记录整体压缩,支持 lz4 和 zstd,B-tree 建索引时 WAL 明显变小。0003 还是原型,从任意 LSN 开始读无法解码。
2026-07-26 Andrei Lepikhov danolivo
Andrei Lepikhov 认为,PostgreSQL 社区把稳定和可维护放在创新之前,每一行新代码都是全社区要背的维护负担,所以开创性功能更适合先在分支里做:让代码在真实负载和真实边界情况下跑一段时间,暴露设计缺陷而不动摇主干。他以并行查询访问临时表为例,两家厂商的分支先后尝试三种做法,每种都撞上意料之外的复杂度。难点在于回到上游时如何争取社区注意力。
2026-07-24 Debian Debian 投票页
Debian 于 7 月 24 日开始讨论一项关于在 Debian 中使用 LLM 的普遍决议。其中提案 A 主张禁止由 LLM 或其他生成式 AI 协助的直接贡献,覆盖打包、官方软件、网站和文档翻译,但不包括上游项目及上游的补丁与安全修复;它目前只是投票中的一个选项。Debian 的打包和基础设施处在大量下游供应链的关键位置,规则一旦改变,影响的不只是维护者怎么写代码,还有来源声明、审查和补丁接受流程。结果未定前不宜预设。
2026-07-24 Anthropic Anthropic 博客
Anthropic 说明面向 Claude Opus 5 和 Fable 5 的上下文工程做法:Claude Code 的系统提示删去八成以上,在其编码评测上没有观察到可测的损失。文章建议把验证和评审说明挪进按需加载的 skills,少堆示例、多在工具接口上下功夫。长上下文里互相矛盾的规则会消耗注意力,但把“模型判断力更强”理解成“不再需要硬护栏”同样危险,审计和人工审批仍要留着。
2026-07-06 PyTorch PyTorch 博客
PyTorch 与 AMD、Meta 的作者说明 Monarch 的 ROCm 支持:把 CUDA 桥接换成 HIP,用 RCCL 对接集合通信,保留 libibverbs 的 RDMA 路径,官方称相关贡献通过 1171 项测试,并支持 actor、监督树和张量分片。大规模训练里节点故障是常态,健康节点能继续跑、失败节点再归队,就能减少全局检查点重启带来的 GPU 空转。