-
检查点进程运行机制
阶段一:锚定绝对时空坐标(获取 REDO LSN) 检查点启动的第一步,是在不阻塞业务读写的前提下,在 WAL 日志流中打下一个“物理地基”。 抢占轻量级锁:Checkpointer 进程短暂获取 WAL 插入锁(WALInsertLock)。 打下 REDO 指针:它读取当前 WAL 缓冲区中最新的字节偏移量(LSN)。这个 LSN 被标记为 REDO L ...
-
检查点进程 在获得 wal buffer中的 lsn 和 扫描内存中的脏页的过程中,会涉及到哪些锁?? 这些锁 的功能
在获取 wal buffer中lsn的时候,申请什么 锁?? 这个锁加到什么对象上面? 🗡️ 核心真相:获取 LSN 到底申请了什么锁? 当 checkpointer 在 $a$ 时刻去获取起跑线 LSN(也就是 REDO_LSN)时,它申请的根本不是一个 Spinlock(自旋锁),而是一组极其特殊的 LWLock(轻量级锁)! 在 C 源码中,这个动作调用的 ...
-
检查点进程的完整工作流程
下面把 检查点进程(checkpointer)工作流程 按一条完整逻辑链推一遍。 1. 起点:前台事务先把页改脏,不立刻写数据文件 PostgreSQL 采用 WAL 先行。事务修改数据时,先生成并持久化相应的 WAL,再允许数据页稍后落盘;数据页不会因为一次 UPDATE/INSERT 就立刻写回表文件。官方文档明确说,数据文件的更改 ...
-
检查点进程
角色定位 → 为什么需要它 → 它到底干什么 → 它和 WAL/bgwriter/后端写盘怎么分工 → 对性能和恢复有什么影响 → 怎么监控和排障”这条线讲,这样你能把 checkpointer 真正串起来。 把 checkpointer 进程 按 定义 → 存在意义 → 工作对象 → 触发机制 → 执行动作 → 与 WAL/恢复/性能的关系 → 和其他进程的边界 → 监控与调 ...