术语基础含义
- VCL: volume complete LSN,存储层认为已经提交的LSN(可能包含一个事务中未提交的部分)。 存储层保证小于等于这个VCL 的数据都已经确认提交了, 下次recovery 的时候, 这些数据是保证有的。在storage node recovery 阶段, 比VCL 大于的数据就必须要删除。
计算方式可见:aurora论文中的SCL,PGCL,VCL术语解读 - VDL: volume durable LSN, database标记多个CPL, CPL中最大的且<VCL的值即为VDL。
这个值实则是用来保证MTR(mini-transaction)的原子性的。 - CPL: consistency point LSN, 原文中的定义:The final log record in a mini-transaction。
- MTR:mini-transaction,在database层将用户的事务分成多个有序的mini-transaction,每个mini-transactions由多条redo log组成,并要求被原子地执行。
术语比较
恢复层面:
VCL是用来保证存储层的一致性状态的,而VDL则是用来保证MTR的原子性以进一步保证事务原子性的,具体可结合aurora的recovery过程理解:aurora的故障恢复详解
持久化过程层面:
VCL是完成2的,VDL因命名容易被误解为完成5的(已经被持久化到page store上的LSN),这是错误的。仔细体悟下,这种误解是没有理解“log is the database”思想。