当前位置: 首页 >
2026年3月10日发布的所有文章
-
wal日志的归档进程 工作原理,逻辑条理 的推演
第一拍:源头封口(产生物理载荷) 物理现场:业务在疯狂写入,pg_wal 目录下的一个文件(比如叫 000000010000000A000000FF)刚好写到了第 16777216 个字节。 物理动作:负责写日志的 WAL Writer 进程或者前台业务进程,调用底层的 close() 函数,把这个 16MB 的文件彻底封口。从此以后,这个文件变成了**“只读 ...
-
组提交魔法(Group Commit,极其核心!)
第一杀:WAL Buffer 到底有多大?(智能的弹性气闸) 很多人的第一反应是去查文档背一个固定数字。但在现代 PostgreSQL 内核中,这个大小是极其狡猾且自适应的。 参数控制:wal_buffers。 默认的物理骗局 (-1):如果你去查 postgresql.conf,你会发现它的默认值是 -1。这代表“把控制权彻底交给内核”。 底 ...
-
每个 进程 在自己的私有内存里面生产的 wal日志写入到 wal buffer里面的时候,会抢什么锁?? wdal日志由wal buffer 落盘的时候会抢夺什么锁??
第一道闸门:私有内存 -> wal_buffers(抢夺 WALInsertLock) 【物理动作】: 业务进程在自己的私有内存(Local Memory)里,已经把 XLogRecord(核弹头)组装好了。现在,它要把这串二进制数据**拷贝(Copy)**到全局共享的 wal_buffers 环形队列里。 【争夺的锁】:WALInsertLock(WAL 插入锁) 【原厂 ...