核心三部分为:版本链,undolog,readview。
-
undolog中单个事务具有事务id和回滚指针,回滚指针指向上一个事务id,实现事务回滚。
-
readview可见性判断依据,适用与RR和RC,RR只在第一次执行生成快照,RC每次执行都会生成快照。
具体参数:事务未提交id集合,最大事务id,最小活跃事务id,生成readview时,事务id。
当事务id大于最大事务id,说明在readview生成的时候,不包括此事务,不可见。
当事务id小于最小活跃事务id,说明此事务已提交,可见。
当事务id小于最大事务id,则进行下步判断,看是否属于活跃事务,属于是未提交,则不可见。不属于是已提交,可见。