某业务操作需要同时更新订单库和库存库。为了避免一个库提交成功、另一个库回滚导致数据不一致,系统引入协调者,先询问各参与者是否可以提交,确认都准备好后再统一通知提交。该机制更接近()。
两阶段提交(2PC)是一种分布式事务协调机制,典型过程包括准备阶段和提交阶段。准备阶段由协调者询问各参与者是否能够提交;如果所有参与者都准备好,协调者再发出提交命令;如果有参与者失败,则通知回滚。它试图解决多个资源参与同一事务时的一致性问题,但也可能带来阻塞、协调者单点等代价。
选项分析
正确。两阶段提交通过协调者和两个阶段控制分布式事务提交。
错误。索引扫描用于查询访问路径优化,不解决多库事务一致性。
错误。浏览器缓存与数据库分布式事务无关。
错误。只读视图可用于权限和查询封装,不负责跨库提交协调。
本题为什么容易错
这题容易把分布式事务和普通事务混为一谈。单库事务由数据库自己保证原子性,多库事务需要额外协调机制,否则就可能出现一边提交、一边失败的尴尬状态。
简短答案
两阶段提交为什么用于分布式事务一致性,正确答案是 A(两阶段提交 2PC)。两阶段提交(2PC)是一种分布式事务协调机制,典型过程包括准备阶段和提交阶段。准备阶段由协调者询问各参与者是否能够提交;如果所有参与者都准备好,协调者再发出提交命令;如果有参与者失败,则通知回滚。它试图解决多个资源参与同一事务时的一致性问题,但也可能带来阻塞、协调者单点等代价。
易混淆概念对比表
| 概念 | 本题判断 | 区别要点 | 记忆提示 |
|---|---|---|---|
| 两阶段提交 2PC | 本题正确答案 | 正确。两阶段提交通过协调者和两个阶段控制分布式事务提交。 | 看到题干核心场景时优先联想到它 |
| 普通单表索引扫描 | 本题干扰项 | 错误。索引扫描用于查询访问路径优化,不解决多库事务一致性。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| 浏览器页面缓存 | 本题干扰项 | 错误。浏览器缓存与数据库分布式事务无关。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| 只读视图权限控制 | 本题干扰项 | 错误。只读视图可用于权限和查询封装,不负责跨库提交协调。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
本题易混淆选项怎么区分
- 普通单表索引扫描:错误。索引扫描用于查询访问路径优化,不解决多库事务一致性。
- 浏览器页面缓存:错误。浏览器缓存与数据库分布式事务无关。
- 只读视图权限控制:错误。只读视图可用于权限和查询封装,不负责跨库提交协调。
知识点详解
两阶段提交解决的是多个参与者共同完成一个事务时的一致性问题。第一阶段先询问各参与者能不能提交,第二阶段再根据准备结果统一提交或回滚。它的价值在于避免部分提交、部分失败,但代价是多了协调流程,也可能出现阻塞和协调者故障问题。
备考速记
记法:2PC 是“先问能不能提交,再统一提交或回滚”。题干出现协调者、参与者、准备阶段、提交阶段、多库一致性,就往两阶段提交想。
一致性在一致性场景中的作用
一致性在本题中的核心价值,是解决“某业务操作需要同时更新订单库和库存库。为了避免一个库提交成功、另一个库回滚导致数据不一致,系统引入协调者,先询问各参与者是否可以提交,确认都准备好后再统一通知提交。该机制更接近()”这个场景问题。复习时不要只背选项名称,还要理解它为什么适用于该场景,以及它能解决哪类安全、流程或管理问题。
同类题怎么考
- 给出一致性场景,判断应该选择哪个概念、工具、协议或管理过程。
- 考查一致性的作用,要求从四个相近选项中找出最符合题干目标的一项。
- 把一致性和普通单表索引扫描、浏览器页面缓存、只读视图权限控制放在一起考,重点看适用场景是否一致。
- 题干通常会出现一个关键动作或目标,先定位关键词,再回到选项逐一排除。
一致性在数据库系统工程师软考中的考法
软考选择题通常不会只考概念定义,还会把一致性放到一致性场景中,要求判断它的作用、适用范围或与相近概念的区别。遇到这类题时,先抓住题干中的业务场景,再看哪个选项最能解决该场景下的核心问题。
解题思路
题干已经把2PC的骨架写出来了:先问能不能提交,再统一提交。老师讲分布式事务时会强调,它不是提高查询速度的技术,而是为了让多个参与者在事务结果上保持一致。
考点定位
看到多个数据库或多个资源要么都提交、要么都回滚,并出现协调者、准备阶段、提交阶段,优先想到两阶段提交 2PC。
易错提醒
- 只在应用层依次更新两个库,没有处理第二个库失败时的补偿或回滚。
- 使用2PC却忽略协调者故障和参与者阻塞风险。
- 把2PC当作提升性能的方案,实际上它常会增加协调成本。
备考提示
- 分布式事务题建议对比2PC、TCC、Saga补偿事务,不要只背名字。
- 数据库系统工程师复习时,把ACID、事务日志、并发控制、分布式一致性放在同一条线上看。
- 相关专题:/guides/database-system-engineer-100-day-sprint-plan/
你可能还想了解
- 两阶段提交为什么用于分布式事务一致性?
- 一致性是什么?
- 一致性在数据库系统工程师考试中怎么考?
- 数据库系统工程师一致性题怎么理解?
- 两阶段提交2PC解决什么问题怎么考?
- 分布式事务一致性怎么考?
本文小结
本题核心考点是一致性在一致性场景中的判断和应用。遇到类似题目时,先看题干描述的目标,再判断哪个选项最符合场景;本题应选择 A(两阶段提交 2PC)。