木匠钉子
Skip to content
博客

文章

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

2026

8 月 的文章,展开或收起
  1. Shared Buffers 不是一个 Cache

    Shared Buffers 会缓存 Page,但沿着一个 Buffer Slot 的生命周期看下去,里面还有 identity、pin、I/O、dirty 和 eviction 组成的一整套协议。

  2. 一个 Backend 想睡一觉,为什么这么麻烦?

    条件不满足就睡,别人做完了再叫醒。听起来很简单,但并发系统最麻烦的地方,往往就藏在"决定要睡"和"真正睡下去"之间。

  3. 一个 Backend 是怎么进入 PostgreSQL“共享世界”的?

    有了 PID,为什么还要 PGPROC?有了 PGPROC,为什么还要 ProcArray?顺着 backend 的生命周期,看它怎么在共享内存里建立身份、发布状态,再安全退场。

7 月 的文章,展开或收起
  1. 事务都结束了,PostgreSQL 为什么还不能立刻释放锁?

    不是 PG 拖拖拉拉不想放锁,是放锁这件事本身就是在告诉其他人"我弄完了,你们可以进来了"。