软考 系统架构设计师系列知识点之杂项集萃(138)
接前一篇文章:软考 系统架构设计师系列知识点之杂项集萃(137)
第255题
分布式数据库两阶段提交协议中的两个阶段是指()。
A. 加锁阶段、解锁阶段
B. 获取阶段、运行阶段
C. 表决阶段、执行阶段
D. 扩展阶段、收缩阶段
正确答案:C。
试题解析:
二阶段提交(Two-phase Commit)是指,在计算机网络以及数据库领域内,为了使基于分布式系统架构下的所有节点在进行事务提交时保持一致性而设计的一种算法(Algorithm)。通常,二阶段提交也被称为是一种协议(Protocol)。
在分布式系统中,每个节点虽然可以知晓自己的操作成功或者失败,却无法知道其它节点操作的成功或失败。当一个事务跨越多个节点时,为了保持事务的ACID特性,需要引入一个作为协调者的组件,来统一掌控所有节点(称为参与者)的操作结果并最终指示这些节点是否要把操作结果进行真正的提交(比如将更新后的数据写入磁盘等等)。因此,二阶段提交的算法思路可以概括为:参与者将操作成败结果通知协调者,再由协调者根据所有参与者的反馈情报,决定各参与者是否要提交操作还是中止操作。
所谓的二阶段是指:
- 第一阶段 —— 准备阶段
事务协调者(事务管理器)给每个参与者(资源管理器)发送Prepare消息,每个