选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

PostgreSQL 博览 RSS 订阅

当天收录 16 条。

数据校验和的 TAP 测试暴露崩溃恢复竞态

Tomas Vondrapgsql-hackers 邮件列表

Tomas Vondra 给刚进主干的在线切换数据校验和写了一套 TAP 测试,用大约 80 个注入点检查状态变更与 checkpointer 之间的竞态。状态分散在四处,各由不同的锁保护。测试发现崩溃恢复后的最终状态会在 on 和 off 之间摇摆,取决于启动器写 XLOG2_CHECKSUMS 记录与 checkpointer 读共享内存做 REDO 的先后。他质疑 DELAY_CHKPT_START 是否真能挡住这类竞态。

REPACK 并发版的压力测试仍在报错

Antonin Houskapgsql-hackers 邮件列表

REPACK 的并发执行仍有正确性问题。Mihail Nikalayeu 报告说即使打上针对 SNAPBUILD_CONSISTENT 的最新修复,压力测试照样失败:唯一索引创建时报重复键,pgbench 侧出现除零错误。008 号并发测试被那个修复治好了,007 号仍稳定复现;把 need_shared_catalogs 置为 true 能绕过,说明当前方案有根本缺陷。Antonin Houska 承认要查旧问题。

流复制与 WAL 归档的协调补丁进到第五版

Grigory Smolkinpgsql-hackers 邮件列表

Grigory Smolkin 提交第 5 版补丁,处理流复制与 WAL 归档之间的交互,问题出在管着数千个集群的生产环境里。v5 的主要改动是只传时间线 ID 和段号而不是完整 WAL 文件名,把一部分工作挪到归档进程,并为 walreceiver 与归档进程加共享内存协调。四个设计问题待定:备库要不要更新 pg_stat_archiver、两类 ready 文件怎么处理、切换点计算能否简化、强制归档是否全收进归档进程。

冲突日志表的权限拟授给 pg_create_subscription

Amit Kapilapgsql-hackers 邮件列表

逻辑复制的冲突日志历史表卡在权限上:非超级用户的订阅所有者访问不了 pg_conflict 模式里的冲突日志表,原因是查询分析阶段过早做了 ACL 检查。Dilip Kumar 试过绕开模式检查和干脆取消限制,都不合适;Shveta Malik 提议单给订阅所有者授 USAGE,但订阅所有者本身没有授权的权限。最后 Amit Kapila 提议把该模式的使用权授给 pg_create_subscription 角色,表级操作仍限本人。

故障转移复制槽两年后仍要手动同步

Christophe Pettusthebuild.com

Christophe Pettus 回顾故障转移复制槽的两年。PostgreSQL 17 引入三件套:订阅的 failover 选项、备库的 sync_replication_slots、主库的 synchronized_standby_slots;18 只修缺陷;19 增加动态 wal_level 与 slotsync_skip_reason 列。它保证提升后新主库的槽位不会跑到订阅者前面。但槽位复制是异步的,提升前必须手动核对位置。

把 Postgres 当任务队列的天花板比想象中低

Richard Yenrichyen.com

Richard Yen 讲清了拿 Postgres 做任务队列会撞上什么。高并发下大量工作进程用 SELECT FOR UPDATE SKIP LOCKED,多个事务会短暂引用同一行,产生的 MultiXact ID 堆进固定大小的 SLRU 缓冲区,后端排队在 LWLock:MultiXactSLRU 上,吞吐随之塌陷。任务行反复更新删除,死元组产生得比 autovacuum 回收快,几兆有效数据的队列表能涨到几十 GB。

PgQue 靠两个快照定义批次,代价是秒级延迟

Christophe Pettusthebuild.com

Christophe Pettus 拆解了 PgQue 的做法:消费时完全不改事件表。事件写进轮转的表,事务 ID 作列默认值;一个 ticker 每秒抓一次 pg_snapshot,相邻两个快照之间就是一个批次,消费端据此判断可见性;三张表靠 TRUNCATE 轮转,不做垃圾回收。算法出自 Marko Kreen 2007 年前后的设计。代价是事件要等下一个 tick 才可见,端到端一到两秒。

pgBackRest 归档提出的是治理而非许可证问题

Vibhor Kumarvibhorkumar.wordpress.com

Vibhor Kumar 借 pgBackRest 被原作者 David Steele 归档一事,把开源许可证和运营可持续性分开来谈。项目做了十三年,用的是 MIT 许可证,法律和结构上完全开放,谁都可以分支,但归档意味着它已无人维护。他的看法是一个项目可以在法律上开放、在运营上脆弱。给企业的建议是别只查许可证合规,还要问治理:有没有共享的维护权、透明的决策和可持续的资金。