企业数据激增,数据库清理过程(简称:VACUUM)是一个重要的维护方式。它可以提高数据质量,保证Vastbase持久运行。VACUUM的两个主要任务是删除死元组和冻结事务标识。
本期Vast+产品展厅,让我们一起了解下VACUUM的实现方式和处理过程。
1、为什么需要VACUUM?
Vastbase独特的MVCC实现方式,需要引入VACUUM清理留下的死元组,便于空间复用、避免空间膨胀。
MVCC实现方式就像信用卡,删除、更新和回滚留下的“债务”需要去偿还,偿还的动作就是由VACUUM来做的,如果不偿还就会导致破产。
移除死元组有两种清理模式:并发清理和完整清理。
并发清理会删除表文件每个页面中的死元组,而其他事务可以在其运行期间继续读取该表。
相反,完整清理不仅会移除整个文件中的所有死元组,还会对整个文件中的所有的活元组进行碎片整理;其他事务在完整清理运行期间无法访问该表。
2、并发清理
并发清理为指定的表或数据库中的所有表执行如下任务:
1 移除死元组
(1)移除指向死元组的索引元组;
(2)移除每一页中的死元组,并对每一页内的活元组进行碎片整理。
2 冻结旧的事务标识
(1)如有必要,冻结旧元组的事务标识;
(2)