循序渐进丨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)