<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>数据库内核月报 － 2026/07</title>
    <link>http://mysql.taobao.org/monthly/2026/07</link>
    <language>zh-CN</language>
    <description>数据库内核月报，来自阿里云 PolarDB 数据库内核团队</description>
    <ttl>3600</ttl>
    <item>
      <title>MySQL/PostgreSQL Slot-based Buffer Manager Pin/buf_block_fix operator</title>
      <link>http://mysql.taobao.org/monthly/2026/07/01/</link>
      <author>baotiao</author>
      <description>在 MySQL/PostgreSQL Buffer Pool 里面有一个 Pin 操作 — PostgreSQL 叫 Pin, MySQL InnoDB 叫 buf_block_fix / io_fix. 这些操作本质上都是把一个 page “pin” buffer pool 的某个位置上. 为什么在其他系统里很少见到这种代码? 答案是 PG 和 InnoDB 的 buffer pool 都用了同一种架构 — Slot-based Buffer Manager. 这种架构直接决定了 Pin 这个操作必须存在. Slot-based Buffer Manager 结构 启动时, buffer p…</description>
      <pubDate>Mon, 31 Aug 2026 06:06:31 +0000</pubDate>
    </item>
    <item>
      <title>PostgreSQL Buffer Access 5 Rules</title>
      <link>http://mysql.taobao.org/monthly/2026/07/02/</link>
      <author>baotiao</author>
      <description>src/backend/storage/buffer/README 是 PG 社区维护 buffer manager 的官方设计文档. 它在开头列了 5 条 buffer access rules, 提 patch / review 时直接引用. 这 5 条规则合起来定义了 PG 的 Pin 协议, 也是 PG 和 InnoDB buffer manager 设计上真正分叉的地方. 同步原语先看清楚 PG 的 buffer 上有两个独立的同步原语: Pin — atomic refcount, 防止 slot 被 evict 换成别的 page. 持有时间可长可短, 甚至跨函数 / 跨节点传递…</description>
      <pubDate>Mon, 31 Aug 2026 06:06:32 +0000</pubDate>
    </item>
    <item>
      <title>PostgreSQL HeapTable + Pin vs MySQL InnoDB IOT + Persist cursor</title>
      <link>http://mysql.taobao.org/monthly/2026/07/03/</link>
      <author>baotiao</author>
      <description>前面介绍过 PostgreSQL Buffer Access 5 Rules 里面的 Pin 机制, 其实 HeapTable + Pin 机制还带来了其他和 InnoDB 的区别. InnoDB Persist cursor 是用来保留查询遍历 btree 过程中 index tree cursor 的位置. 为什么需要 persist cursor? 因为有多种场景下, 比如在执行大查询时, 查到一行以后, 需要将数据返回给 server 层处理. 这时, 你不能在返回指向 Record 的指针 index tree cursor 后依然持有该 Page 的锁 (Latch). 如果锁不放…</description>
      <pubDate>Mon, 31 Aug 2026 06:06:32 +0000</pubDate>
    </item>
    <item>
      <title>浅析 mysql binlog 提交流程</title>
      <link>http://mysql.taobao.org/monthly/2026/07/04/</link>
      <author>晔之</author>
      <description>背景介绍 binlog介绍 Binlog （Binary log）是 MySQL Server 层维护的一种二进制日志，以事务级别记录了对数据库的所有修改操作。 事务级别是指：一个事务的日志，是在事务提交时被写入 binlog 文件中的。具体来说，事务在执行过程中，会不断的生成 binlog events，暂存在 session 级别的 binlog cache 中；事务提交时，会一次将 binlog cache 中所有内容写到 binlog 文件中。 binlog作用 binlog又叫归档日志，可以用于复制，订阅，数据库的增量备份和恢复等。 crash safe 数据库发生异常重启，之前提交…</description>
      <pubDate>Mon, 31 Aug 2026 06:06:33 +0000</pubDate>
    </item>
  </channel>
</rss>
