在继续往下说之前,我们的提到clog, 这是理解后面要提到的一些事情的前提, 在POSTGRESQL 中clog 是记录每一个事务相关的xid, 以及事务的提交状态, 状态包含了 执行中, 已提交, 中断...主要的原由是,子事务是包含在事务内的,在事务本身失效后,这些子事务也没有必要进行记录,所以在pg_wal中也不会有相关子事务的日志记录....上期说到事务的ID 只有在执行 INSERT ,UPDATE ,DELETE的时候才进行事务号的分配,那么不分配事务号的情况下,事务到底有没有事务号, 实际上是有的在事务开始时是分配一个虚拟的事务ID...process ID + 本地的计数器, 这样就可以产生一个自己的临时的虚拟的事务ID
在获取了ID后,我们直接就开始进行相关事务的开启,参加下面的语句
TRACE_POSTGRESQL_TRANSACTION_START...并且子事务与父事务之间的关系是自下而上的搜索, 只有通过子事务才能查找到自己的父事务, 并在设计的时候, 通过简单的事务ID与页面数的余数,商可以直接快速定位事务的状态.