标签: internals
所有带有 "internals" 标签的文章。
2026
9 月 的文章,展开或收起
-
PostgreSQL 是怎么把 Tuple 写进 Heap 的
顺着一次 Tuple 写入,看看 FSM、Visibility Map、Buffer Lock 和 WAL 是怎么在 Heap AM 里接到一起的。
-
Checkpoint 调优,到底在调什么?
Checkpoint 引起的 I/O 尖峰和延迟抖动,可能来自触发太频繁,也可能来自某一轮写得太重。把一次 Checkpoint 拆成 trigger、write、sync 三段,再顺着 WAL、pg_wal 和 Recovery 往下看,这几个参数各自管什么就清楚了。
-
Checkpoint、BgWriter、WAL Writer,PG 的三个后台写进程
Checkpointer、Background Writer 和 WAL Writer 都会在后台写盘,但它们守的是三个不同的边界:Recovery 从哪里开始、Buffer 能不能顺利复用、WAL 推进到了哪里。这三个边界之间,又一直在互相借力。
-
WAL 已经可以相信了,Data Page 呢?
COMMIT 返回时,被修改的 Data Page 往往还留在 Shared Buffers 里。WAL Flush 已经把 fsync 算进自己的语义,Data Page 却把 write 和 sync 拆成两步,中间还隔着一次责任交接。