openGauss/MogDB列存表vacuum DELTAMERGE过程申请的锁
之前测试openGauss列存表vacuum DELTAMERGE的时候,发现pg_delta表会在做完vacuum DELTAMERGE后,使用新的物理文件,pg_delta表的relfilenode会发生变化,相当于表重建了。
同时为了测试vacuum DELTAMERGE过程申请了什么锁,大致瞅了眼源码,从源码里看vacuum DELTAMERGE过程申请了AccessExclusiveLock锁。
如下是对锁的验证:
因为测试环境配置有限,做vacuum DELTAMERGE较快,比较难抓到锁。所以我想到了直接从锁入手,AccessExclusiveLock是8级锁,主库申请8级锁时,会将其记录到WAL日志里。
所以,在测试之前。我先切了一个日志。
openGauss=# select pg_switch_xlog();
pg_switch_xlog
----------------
0/3003058
(1 row)