木匠钉子
Skip to content
博客

文章

这里是我发布的所有文章。

2026

9 月 的文章,展开或收起
  1. WAL 已经可以相信了,Data Page 呢?

    COMMIT 返回时,被修改的 Data Page 往往还留在 Shared Buffers 里。WAL Flush 已经把 fsync 算进自己的语义,Data Page 却把 write 和 sync 拆成两步,中间还隔着一次责任交接。

  2. COMMIT 返回之前,PostgreSQL 到底在等什么?

    COMMIT 返回之前,PostgreSQL 要等 WAL 持久化到自己的 Commit LSN。可这条有序日志是一群并发 Backend 写出来的,这条线比想象中曲折。

8 月 的文章,展开或收起
  1. WAL 里面存的是 Page Diff 吗?

    一个 Page 在 Shared Buffers 里被修改以后,PostgreSQL 到底往 WAL 里留下了什么?从 Heap Insert 一路看到 B-tree Split、FPI 和 rmgr。

  2. 围棋、AI 与软件设计:真正重要的也许不是多算几步

    如果下棋只是比谁算得多,业余玩家是不是从一开始就输了?顺着这个疑问查了一圈,发现围棋要训练的,和做数据库设计要训练的,原来是同一件事。