一致性模型与 CAP 理论与 Zab 与 Gossip 等其他复制协议

共 22 题
#

1. 线性一致性(linearizability)、顺序一致性(sequential consistency)与因果一致性的强弱关系如何排列?

A 顺序一致最强
B 因果一致 > 顺序一致 > 线性一致
C 三者强度相同
D 线性一致 > 顺序一致 > 因果一致 ✓ 正确答案
#

2. read-your-writes、monotonic reads、writes-follow-reads 等会话一致性保证分别约束什么现象?

A 会话一致性需全局协调
B READ-YOUR-WRITES 保证客户端写后必能读到,MONOTONIC READS 保证读不进后退 ✓ 正确答案
C MONOTONIC READS 允许读回退
D WRITES-FOLLOW-READS 与读无关
#

3. 最终一致性为何是弱一致性的一种,收敛性(convergence)需要哪些前提条件?

A 最终一致性保证实时读最新值
B 收敛需副本持续通信、确定性冲突解决且无新写入稳定期 ✓ 正确答案
C 收敛不依赖任何前提
D 最终一致性与弱一致性无关
#

4. 线性一致性与可串行化分别针对单键与事务,二者组合成严格可串行化的含义是什么?

A 严格可串行化不强于可串行化
B 线性一致针对事务
C 可串行化针对单对象
D 线性一致针对单对象,可串行化针对事务,严格可串行化是二者组合 ✓ 正确答案
#

5. 基于领导者时间戳的因果一致性实现为何依赖时钟近似有序,时钟漂移会破坏什么?

A 依赖时间戳近似因果序,时钟漂移会破坏因果顺序 ✓ 正确答案
B 时钟漂移不影响因果一致性
C 物理时钟时间戳无需同步
D 时间戳与因果序无关
#

6. Zab 的 Zxid 由 epoch 与事务计数器两部分组成,这种结构如何在选主时比较事务的新旧?

A Zxid 比较与 epoch 无关
B Zxid 只含事务计数器
C Zxid 由 epoch 与 counter 组成,选主时先比 epoch 再比 counter ✓ 正确答案
D Zxid 不能用于选主
#

7. FoundationDB/CockroachDB 的 read 路由,就近 replica + lease holder 如何实现?

A follower read 保证最新一致
B 所有读都必须走共识
C lease holder 协调读写,就近 replica 读牺牲一定新鲜度换取低延迟 ✓ 正确答案
D lease holder 与读无关
#

8. Zab 崩溃恢复阶段如何保证已提交事务不丢失、未提交事务被丢弃?

A 未提交事务也会被保留
B 崩溃恢复会丢失已提交事务
C 从多数派恢复已提交事务并同步,未提交事务被丢弃 ✓ 正确答案
D 崩溃恢复与多数派无关
#

9. Gossip 协议通过周期性随机配对交换状态(反熵),为什么信息能在约 O(log N) 轮内传播到整个集群?

A 传播轮数与节点数成正比
B 每轮知情节点指数翻倍,约 log N 轮覆盖全集群 ✓ 正确答案
C 随机配对降低传播效率
D Gossip 需中心节点协调
#

10. 基于 Gossip 的最终一致性系统(如 Cassandra)如何借助时间戳或向量时钟解决并发写冲突(last-write-wins)?

A LWW 用时间戳胜出,vector clock 检测并发写 ✓ 正确答案
B 时间戳只能用于检测并发
C vector clock 提供胜出规则
D 并发写冲突无法解决
#

11. lease(租约)机制如何让 leader 在租约有效期内本地读而不必走共识?时钟漂移会带来什么风险?

A 租约机制与时钟无关,无需担心漂移
B 租约期内 leader 可本地读而不必走共识,但时钟漂移可能导致租约重叠、读到过期数据 ✓ 正确答案
C 租约期内 leader 每次读仍需走共识
D 时钟漂移只会让租约变短,不会导致读到过期数据
#

12. Zab 用 proposal 与过半 ACK 保证事务全序,这与两阶段提交(2PC)的阻塞性有何本质不同?

A Zab 也需全体 ACK
B Zab 过半 ACK + 选主恢复不阻塞,2PC 协调者故障时全参与方阻塞 ✓ 正确答案
C 2PC 具备选主恢复
D 两者都阻塞
#

13. CAP 定理中一致性、可用性、分区容忍性为何三者不可兼得,PACELC 如何扩展这一权衡?

A PACELC 与 CAP 无关
B CAP 覆盖所有场景
C CAP 只管分区时 C/A 取舍,PACELC 补充了无分区时 E/L/C 取舍 ✓ 正确答案
D 无分区时无需权衡
#

14. 向量时钟如何检测并发更新与因果关系,相比 Lamport 时钟它多捕获了什么信息?

A 向量时钟无法判断因果关系
B 向量时钟与 Lamport 时钟信息相同
C 向量时钟能区分因果与并发,Lamport 时钟无法区分并发 ✓ 正确答案
D 向量时钟开销为 O(1)
#

15. Quorum NWR 模型中 R+W>N 为何能保证读到最新值,R+W<=N 时会丢失什么保证?

A NWR 与多数派无关
B R+W>N 导致读写集合不相交
C R+W≤N 仍保证读到最新值
D R+W>N 保证读写集合相交,读到最新值 ✓ 正确答案
#

16. CP 系统与 AP 系统在分区发生时的典型行为差异是什么,各举一类代表系统?

A AP 分区时保一致
B CP 分区时保可用
C CP 分区时拒绝请求保一致,AP 分区时正常响应保可用 ✓ 正确答案
D CP 与 AP 行为相同
#

17. Zab 与 Raft 都采用 leader 复制,两者在日志同步阶段(Zab 的 DISCOVER/SYNC vs Raft 的 AppendEntries)上有何差异?

A Zab 用 AppendEntries
B 两者同步方式完全相同
C Raft 有独立发现阶段
D Zab 用 DISCOVER/SYNC 阶段,Raft 用 AppendEntries 一致性检查统一同步 ✓ 正确答案
#

18. Speculative Replication 的 read-any-replica vs majority-read 的一致性权衡?

A majority-read 延迟最低
B read-any-replica 保证最新值
C read-any-replica 低延迟但可能陈旧,majority-read 最新但延迟高 ✓ 正确答案
D 两者一致性相同
#

19. Speculative replication 在 Cosmos DB multi-region writes 的 session consistency 工程价值?

A session consistency 需全局强一致
B 结合 speculative replication 提供多区低延迟写与客户端可感知一致 ✓ 正确答案
C 多区写无法提供 session consistency
D session consistency 只影响读
#

20. Lamport 时钟只能保证因果有序,为什么无法判断两个事件是否并发?向量时钟如何弥补这一缺陷?

A 向量时钟无法判断因果
B Lamport 时钟能判断并发
C Lamport 无法区分并发,向量时钟通过各节点分量判断并发 ✓ 正确答案
D 两者信息量相同
#

21. 混合逻辑时钟(HLC)如何在保留物理时间近似的同时提供因果序?它相对纯 Lamport 时钟的优势是什么?

A HLC 与物理时间无关
B HLC 兼有物理时间逼近与因果序,相对 Lamport 多了物理时间参考 ✓ 正确答案
C HLC 不满足因果序
D HLC 与 Lamport 完全相同
#

22. 为什么说 Gossip 的收敛是概率性的?节点失效与网络分区如何影响反熵的最终一致?

A 节点失效不会导致数据丢失
B Gossip 收敛是确定性的,与节点选择和分区无关
C 网络分区不影响 Gossip 的最终一致
D 收敛是概率性的,节点失效与网络分区会阻断反熵,分区恢复后才能重新收敛 ✓ 正确答案