几个ResourceOwner的含义
总结下几个resowner的含义:
- 事务结构内的resowner:
TransactionState→curTransactionOwner
- 含义:跟随事务结构体创建,会申请内存,跟随事务结构释放。每层事务都有自己的
curTransactionOwner
,各自申请内存,子事务提交会释放本层的curTransactionOwner
。
- 含义:跟随事务结构体创建,会申请内存,跟随事务结构释放。每层事务都有自己的
CurrentResourceOwner
- 含义:大部分函数默认使用的资源管理器,会直接在
CurrentResourceOwner
上申请资源。例如buffer、文件fd、锁系统等等。
- 含义:大部分函数默认使用的资源管理器,会直接在
CurTransactionResourceOwner
- 含义:指向当前(子)事务的
curTransactionOwner
,只在portal创建时和触发器中使用,开发中大部分时间不需要关注,关注TransactionState→curTransactionOwner
即可。
- 含义:指向当前(子)事务的
TopTransactionResourceOwner
- 含义:顶层事务的
ResourceOwner
。
- 含义:顶层事务的
AuxProcessResourceOwner
- 含义:辅助进程使用,例如vacuum、walsender等等。
生命周期
(CurTransactionResourceOwner
的使用场景有限)需要关注的是TransactionState→curTransactionOwner
。