memtable读操作是否符合RC的事务隔离级别

最近在看资料的时候发现开启一个事务的时候读取事务会忽略小于事务开始版本的未上锁的数据,这样的话事务的隔离级别不就是RR了吗?但是OB不管MySQL租户和Oracle租户的隔离级别都是RC

要看读事务的快照是怎么获取的,具体可以看https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000821590,其实就是sql语句执行和事务开始的区别,ob的mvcc是Read Version的方式实现的,读事务执行的时候拿到是当前数据库的快照,可以看做是已提交事务的最大事务号。

嗯,我理解错了。。图里面这个读事务就是开启前的修改数据才会被读取到,101的数据是事务开启后的更新

而且OB其实本质上没有RR的,RR在实现上就是serializable,比RR更严格。