关于 OceanBase 的事务隔离级别及并发控制机制,以下说法正确的是?

关于 OceanBase 的事务隔离级别及并发控制机制,以下说法正确的是?单选题

A. OceanBase 默认的隔离级别是 READ COMMITTED,在该隔离级别下不会出现不可重复读现象。

B. 在 REPEATABLE READ 隔离级别下,OceanBase 通过间隙锁(Gap Lock)完全避免了幻读(Phantom Read)。

C. OceanBase 使用多版本并发控制(MVCC)结合行锁实现隔离级别,读操作不阻塞写操作,写操作不阻塞读操作。

D. 在 SERIALIZABLE 隔离级别下,OceanBase 对所有访问的行都加共享读锁,直至事务结束才释放,因此并发性能急剧下降。

2 个赞

解析
OceanBase 采用 MVCC 机制,每行数据有多个版本,读操作读取事务开始时的快照版本,因此读不阻塞写、写不阻塞读。这是其能够支撑高并发混合负载的关键设计。

  • A 错误 :OceanBase 默认隔离级别为 READ COMMITTED ,但该级别下会出现不可重复读 (同一事务内两次读取同一行数据可能得到不同结果)。
  • B 错误 :在 REPEATABLE READ 级别下,OceanBase 不使用间隙锁 ,而是通过 MVCC + 快照读 方式避免幻读(仅针对快照读,当前读仍可能出现幻读)。MySQL InnoDB 的性能问题常见原因正是间隙锁;OceanBase 的设计更轻量。
  • D 错误 :SERIALIZABLE 级别在 OceanBase 中实现依赖加锁机制,但并非对所有行加共享读锁 ,而是通过谓词锁或更强的 MVCC 约束保证串行化,虽比 RR 低效,但仍优于传统悲观锁模式,且不会“急剧下降”到不可用状态

正确答案:C

选择C
正确:OceanBase 使用 MVCC(多版本并发控制)+ 行锁实现隔离级别,读操作基于快照不阻塞写,写操作持有行锁不阻塞读,实现读写不阻塞。

OceanBase 的核心并发控制是 MVCC 优先,行锁仅用于写冲突处理,因此读写不阻塞是其关键特性。

C OceanBase 采用 MVCC + 行锁 实现并发控制:

1 个赞

选C

正确答案:C