tidb mvcc 读取数据流程的想法

和持久性没关系。RR和RC在MVCC上的最大区别在于,RR中的快照是事务创建时(TiDB)或者事务执行第一条SQL时(MySQL)创建的,整个事务中的所有SQL都使用这一个快照,而RC中每条SQL语句都会创建单独的快照。无论是RC还是RR,一旦创建了快照,那么基于这个快照的读,要保证ACID,也是会存在读写冲突的,这个和隔离级别无关。我写的这个例子是想说,T4时刻创建的快照(无论是RR还是RC),它必须要能看见T2和T3的变更(有可能发生T3与T4两个事务读写冲突),否则就违背了线性一致性。当然如果业务对一致性要求没有这么高,比如只需要保证因果一致性或者最终一致性,那么就另当别论
https://docs.pingcap.com/zh/tidb/stable/transaction-overview#因果一致性事务