扫一扫二维码
进群一起备考
查看更多
当前 - 选择题 - 特殊数据库系统中等
单选题
2017年11月第9题
中等
单选题
2017年11月第9题
#了解即可
#超纲
分布式数据库两阶段提交协议中的两个阶段是指(【表决阶段、执行阶段】)。
问题(1)
浓缩知识点
二阶段提交协议(2PC)是保障分布式事务原子性与一致性的经典算法,核心包含协调者与参与者两类角色,整体分为两个核心阶段。表决阶段也叫准备阶段,由协调者发起事务提交准备请求,各参与者本地执行事务并记录redo/undo日志但暂不提交,随后向协调者反馈同意或中止的表决结果。执行阶段即提交阶段,若协调者收到所有参与者的同意反馈,就下发提交命令,参与者正式提交事务并释放资源;若有任一参与者反馈中止,协调者则下发回滚命令,参与者执行回滚操作。需要注意的是,它和聚焦并发控制锁管理的两阶段锁协议(2PL)不同,2PL的阶段是扩展加锁和收缩解锁阶段,二者分属不同的分布式事务控制机制,2PC重点解决的是分布式场景下事务提交的一致性问题。
正确答案
C
本题考察的是分布式数据库中的二阶段提交协议(Two-Phase Commit, 2PC),它是确保分布式事务一致性的经典算法。
二阶段提交的核心目标:在多个分布式节点参与同一事务时,保证事务的原子性与一致性。
- 角色:
- 协调者(Coordinator):负责组织事务的提交或回滚。
- 参与者(Participants):实际执行事务操作的数据库节点。
两个阶段:
- 表决阶段(准备阶段,Voting/Prepare Phase)
- 协调者向所有参与者发送“准备提交事务”的请求。
- 参与者本地执行事务并记录 redo/undo 日志,但不提交。
- 各参与者返回“同意提交”或“中止”的表决结果给协调者。
- 执行阶段(提交阶段,Commit Phase)
- 如果协调者收到了所有参与者的“同意提交”,则向所有参与者发送“提交”命令,参与者正式提交并释放锁资源。
- 如果有任何一个参与者投“中止”,则协调者向所有参与者发送“回滚”命令,参与者执行回滚并释放锁资源。
A加锁/解锁阶段:加锁解锁是事务执行的细节,不是2PC的阶段划分,错误。
B获取阶段/运行阶段:不属于2PC的正式命名,错误。
C表决阶段/执行阶段:准确对应“准备阶段”和“提交阶段”,正确。
D扩展阶段/收缩阶段:这是两阶段锁协议(2PL)的概念,不是2PC,错误。
选项选项 C。
