MST

星途 面试题库

面试题:分布式系统中3PC协议的核心机制简述

请简要阐述3PC(三阶段提交)协议的核心机制,包括三个阶段分别是什么以及每个阶段的主要作用。
24.8万 热度难度
后端开发分布式系统

知识考点

AI 面试

面试题答案

一键面试

三阶段提交(3PC)协议的三个阶段及核心机制

  1. CanCommit阶段
    • 主要作用:协调者向所有参与者发送包含事务内容的CanCommit请求,询问是否可以执行事务提交操作。参与者根据自身情况,比如资源可用性、事务一致性等检查,如果可以则返回Yes响应,表示可以进行事务;否则返回No响应。此阶段主要是初步探询所有参与者是否具备执行事务的条件。
  2. PreCommit阶段
    • 主要作用:若在CanCommit阶段所有参与者都返回Yes响应,协调者向所有参与者发送PreCommit请求,进入预提交状态。参与者接收到PreCommit请求后,会执行事务操作,并将Undo和Redo信息记录到事务日志中。此时事务其实已在参与者端执行,但未正式提交,处于一种“准提交”状态,为最终提交做准备。如果有任何一个参与者在CanCommit阶段返回No响应,或者协调者在等待响应过程中出现问题,协调者会向所有参与者发送Abort请求,参与者收到后会中断事务。
  3. DoCommit阶段
    • 主要作用:当协调者接收到所有参与者对PreCommit的ACK响应(表示参与者已完成PreCommit阶段操作),协调者向所有参与者发送DoCommit请求,参与者接收到该请求后正式提交事务,完成整个事务流程。若协调者在等待参与者对PreCommit的ACK响应超时而未收到全部响应,或者有参与者发送的ACK响应异常,协调者会向所有参与者发送Abort请求,参与者收到后回滚事务。这一阶段决定了事务是最终提交还是回滚。