PGPROC相关结构
在共享内存中,核心数据结构围绕PROC_HDR指向的两个list:PROC和XACT
PRCO内存连续,维护链表结构方便申请释放,对应每个后台服务进程,PID为OS标识、PGPROCNO为内部标识
XACT内存连续,维护快照需要的xmin和xid,XACT从PROC拆出来是为了更高的cache line命中率,但是因为xmin的频繁更新,造成更严重的cache line invaild,PG14把这个结构完全优化掉了。
Xlog注册过程
一个页面使用一个register_buffer槽位,最多5个页面
每个页面的其他信息使用rdata槽位形成链表,使用到的rdata用register_buffer的指针指向
maindata独占一些recdata块,保存registerData注册下来的数据
日志组装写入流程图
组装过程:只有header信息会memcry到链表第一个data区域,其他信息例如页面image、元组内容等都是指针挂在后面的data区域
写入过程:写入只需要遍历list,然后memcpy即可