MST

星途 面试题库

面试题:分布式系统中3PC与2PC在性能上有哪些主要差异点

在分布式事务场景下,阐述3PC(三阶段提交协议)与2PC(两阶段提交协议)在性能方面的主要不同之处,例如从故障恢复、响应时间等角度进行分析。
41.6万 热度难度
后端开发分布式系统

知识考点

AI 面试

面试题答案

一键面试

故障恢复方面

  • 2PC
    • 协调者故障:如果协调者在发出预提交指令后崩溃,参与者会一直阻塞等待最终指令。只有协调者恢复后,才能继续完成事务,在此期间资源被长时间锁定,影响系统并发性能。
    • 参与者故障:若有参与者在预提交阶段后故障,协调者可能无法获取所有参与者的最终反馈,可能导致事务处于不确定状态,需额外机制(如超时机制)处理,增加系统复杂性与恢复时间。
  • 3PC
    • 协调者故障:由于引入了预询问阶段,协调者崩溃后,参与者能根据自身状态决定是否提交事务。若处于准备提交状态,只要其他参与者无异议,可自行提交,相对减少了等待协调者恢复的时间,提高了故障恢复时的系统性能。
    • 参与者故障:参与者故障时,若处于预提交状态,其他参与者可继续推进事务。即使部分参与者故障,只要满足一定条件(如大多数参与者可正常响应),事务仍能继续,增强了系统在面对参与者故障时的恢复能力与性能。

响应时间方面

  • 2PC
    • 只有两个阶段,正常情况下流程相对简单,响应时间较短。但在故障场景下,等待协调者恢复或处理不确定状态等操作,会大幅增加响应时间。
  • 3PC
    • 有三个阶段,相比2PC多了预询问阶段,正常情况下增加了额外的通信开销,响应时间会比2PC略长。不过在故障场景下,因更好的故障恢复机制,其响应时间增加幅度相对2PC在故障时更小。