【0373】Postgres内核 MultiXact shared memory 初始化 ( 2 )
上一篇:
【0372】Postgres内核 multi transaction log 管理器 (multixact)
文章目录
- 1. MultiXact 共享内存
- 2. SlruCtlData 类型作用
- 2.1 SlruSharedData 类型作用
- 3. MultiXactOffsetCtl (MultiXactOffsetCtlData)共享内存初始化
- 3.1 初始化 PagePrecedes
- 3.2 初始化 LRU cache
- 3.2.1 计算 Simple Lru 所需 shmen 大小
- 3.2.2 SlruShared 共享内存
- 3.2.3 SlruShared 成员初始化
1. MultiXact 共享内存
postmaster 守护进程在初始化过程中, 会通过函数 reset_shared() 去初始化各种类型的共享内存。其中包括 多事务(multi xact)共享内存的申请。该过程由函数 MultiXactShmemInit () 完成。
本文主要内容如下:
(1)multi xact 共享内存申请
(2)SlruCtlData 类型介绍、及其左右
(3)MultiXactOffsetCtlData、MultiXactMemberCtlData 共享内存申请
(4)MultiXactStateData类型及其作用介绍
(5)MultiXactState 共享内存申请与初始化实现
下面是调用链路: