OceanBase的两阶段提交与传统的两阶段提交相比,用户感知的Commit延迟:
选项:
A. 无法确定
B. 保持不变
C. 减少了
D. 增加了 。
答案C
OceanBase的两阶段提交(2PC)与传统的两阶段提交相比,用户感知的**Commit延迟是减少了
分析过程如下:
1. 传统两阶段提交的延迟问题
在传统数据库(如MySQL的2PC)中:
- 第一阶段(Prepare):所有参与者锁定资源并回复"Ready"。
- 第二阶段(Commit):协调者收到所有"Ready"后发送"Commit"命令,参与者持久化日志并释放锁。
- 用户感知的延迟:客户端必须等待两轮网络交互(Prepare + Commit)和磁盘持久化完成后才能收到Commit成功响应,延迟较高。
2. OceanBase的优化设计
OceanBase通过以下机制减少用户感知的延迟:
(1)并行投票(Parallel Voting)
- 参与者节点在Prepare阶段立即持久化Redo日志,并提前释放读锁(写锁仍保留),减少阻塞时间。
- 协调者可以更快收集投票结果。
(2)异步提交(Async Commit)
- 协调者在收到**多数派(Majority)**的Prepare成功响应后,即可向客户端返回Commit成功,无需等待所有节点持久化。
- 剩余节点的Commit通过后台异步完成。
(3)乐观响应优化
- 对于无冲突事务,OceanBase会跳过部分校验步骤,直接进入Commit阶段。
2 个赞
C~
2 个赞
悬赏给我呗
1 个赞
滴滴
C,OceanBase肯定要优化传统的两阶段提交,提高效率
答案选C