关于源码中快照读的疑问


图中的get_trans_version和get_commit_version分别代表什么呢?
为什么version大于这两个会返回OB_ERR_SHARED_LOCK_CONFLICT
此文件是
image
这里的。
版本为3.1版本

其实就是想知道mvccctx类中的这两个代表什么意思,与mvccrow里的max_trans_version有什么关系,

:face_in_clouds: :face_in_clouds:

贴一下代码版本吧,大家才好帮忙看

3.1版本

这个是快照可见性判断,判断当前事务快照能否读取该数据,通过获取该数据所属的事务的trans version和commit version判断,trans version表示事务的prepare version,如果prepare version比snapshot小,那么继续比较commit version,如果commit version确定了还是比snapshot小,那么就需要等待该事务完成提交,日志同步之后才可以读