系统架构设计师 · 高频练习

N=3、W=2、R=2 时,为什么读写集合一定有副本重叠?

高级 单选题 第 915 题 中等 系统架构设计师QuorumNWR复制分布式一致性
题目

某复制系统共有 N=3 个副本,一次写入至少获得 W=2 个副本确认才成功,一次读取查询 R=2 个副本。关于该配置,正确的是()。

A 一次写入必须等待全部 3 个副本才算成功
B 因为 W=R,所以三个副本中的数据在任何时刻都必然完全一致
C 只要 N 为奇数,就不需要版本号或冲突处理
D 因为 W+R=4>N,任意成功写集合与读集合至少有一个副本重叠
题目类型:原创高频练习题 用途:用于帮助理解系统架构设计师相关考点和答案解析,不等同于官方真题。
正确答案
D
答案解析

W+R>N 时,大小分别为 W 和 R 的任意两个副本集合不可能完全不相交,因此读取至少会碰到一个参与最新成功写入的副本。N=3、W=2、R=2 满足该条件。

选项分析

A

错误。题设 W=2,获得两个确认即可按该策略判定写成功。

B

错误。未参与写确认的副本可能暂时落后,W=R 不代表瞬时全副本一致。

C

错误。奇数副本便于形成多数派,但版本和冲突机制仍不可少。

D

正确。W+R>N 保证成功读写集合存在交集。

本题为什么容易错

公式背对了不难,难的是别过度解释。集合重叠保证读集合里至少有一个较新候选,不保证应用一定选对版本,更不自动解决并发写。

先看结论

简短答案

N=3、W=2、R=2 时,为什么读写集合一定有副本重叠,正确答案是 D(因为 W+R=4>N,任意成功写集合与读集合至少有一个副本重叠)。W+R>N 时,大小分别为 W 和 R 的任意两个副本集合不可能完全不相交,因此读取至少会碰到一个参与最新成功写入的副本。N=3、W=2、R=2 满足该条件。

解析

易混淆概念对比表

概念本题判断区别要点记忆提示
一次写入必须等待全部 3 个副本才算成功 本题干扰项 错误。题设 W=2,获得两个确认即可按该策略判定写成功。 看到该词不要急着选,先判断是否真正解决题干问题
因为 W=R,所以三个副本中的数据在任何时刻都必然完全一致 本题干扰项 错误。未参与写确认的副本可能暂时落后,W=R 不代表瞬时全副本一致。 看到该词不要急着选,先判断是否真正解决题干问题
只要 N 为奇数,就不需要版本号或冲突处理 本题干扰项 错误。奇数副本便于形成多数派,但版本和冲突机制仍不可少。 看到该词不要急着选,先判断是否真正解决题干问题
因为 W+R=4>N,任意成功写集合与读集合至少有一个副本重叠 本题正确答案 正确。W+R>N 保证成功读写集合存在交集。 看到题干核心场景时优先联想到它
本题易混淆选项怎么区分
  • 一次写入必须等待全部 3 个副本才算成功:错误。题设 W=2,获得两个确认即可按该策略判定写成功。
  • 因为 W=R,所以三个副本中的数据在任何时刻都必然完全一致:错误。未参与写确认的副本可能暂时落后,W=R 不代表瞬时全副本一致。
  • 只要 N 为奇数,就不需要版本号或冲突处理:错误。奇数副本便于形成多数派,但版本和冲突机制仍不可少。
复习

知识点详解

提高 W 会增加写延迟并降低写可用性,提高 R 会增加读成本。W+R>N 可保证读写法定集合相交,W>N/2 可让两个成功写集合相交,但系统的实际一致性仍取决于并发模型、故障恢复、版本判定和客户端语义。网络分区时,达不到法定人数的一侧还必须明确拒绝、降级或转为只读。

备考速记

读写人数相加超过总人数,两拨人至少碰到一个;碰到之后还要认版本。

Quorum 在分布式一致性场景中的作用

Quorum在本题中的核心价值,是解决“某复制系统共有 N=3 个副本,一次写入至少获得 W=2 个副本确认才成功,一次读取查询 R=2 个副本。关于该配置,正确的是()”这个场景问题。复习时不要只背选项名称,还要理解它为什么适用于该场景,以及它能解决哪类安全、流程或管理问题。

拓展

同类题怎么考

  • 给出 N、W、R,判断是否存在读写交集。
  • 在一致性、可用性和读写延迟之间选择参数。
Quorum 在系统架构设计师软考中的考法

软考选择题通常不会只考概念定义,还会把Quorum放到分布式一致性场景中,要求判断它的作用、适用范围或与相近概念的区别。遇到这类题时,先抓住题干中的业务场景,再看哪个选项最能解决该场景下的核心问题。

解题思路

拿三张椅子来想最直观。写成功至少坐两张,读也至少检查两张。在只有三张椅子的房间里,两组各占两张,不可能完全错开,至少会碰上一张。这个交集让读取有机会看到最新写入,但客户端还得知道哪个版本新;若两个写同时发生,也仍要处理冲突。

考点定位

法定人数交集只是读到最新版本的重要基础,还要结合版本比较、并发写冲突、时钟和故障处理;不能把一个不等式夸大成天然线性一致。

易错提醒

  • 只检查 W+R>N,忘记多写者场景还常关注 W>N/2。
  • 认为 R 越大只会提高一致性,没有可用性和延迟代价。
  • 把副本确认数与物理节点总数混为一谈。

备考提示

  • 用集合交集解释公式,比死背 N、W、R 更牢。
  • 答架构题时补一句版本向量、时间戳或冲突合并的边界。

你可能还想了解

  • W+R>N 能保证强一致性吗?
  • Quorum 中 R 和 W 怎样影响可用性?
  • 为什么多数写常要求 W>N/2?

本文小结

N=3时,W=2和R=2的集合大小之和为4,大于副本总数3,所以成功读集合与写集合至少重叠一个副本。交集提供读取新版本的基础,但仍需版本判断和冲突处理。