mvcc其实和copyonwritelist的思路差不多:读不加锁,写加锁,事务提交之后释放锁,并且延伸的是,在UNdolog里面保存了几个版本,实现不同的隔离级别.如果读数据页里面最新的数据,那么就是读未提交.如果按照版本号,去undolog里读取已经提交过的快照版本,就是读已提交.如果在事务开始之后的其他事务提交的快照版本都不读取,就可以实现可重复读.至于解决幻读,那要在读的时候,加范围的写锁(gaplock),repeatableRead的隔离级别能做到?还是最高的串行化能做到? 有一种对…