ARC 2选择正确的一致性语义第 5–9 章

第二篇回顾 —— 选择正确的一致性语义(第 5–9 章)

第二篇建立了以业务不变量、失败窗口和验证方法为依据的集合选择过程。

本篇形成的认识

能力压缩矩阵

业务不变量 集合 分区期间 恢复后 验证重点
一个当前 hint Register 可能看到不同值 确定性 winner 顺序交换仍同值;陈旧回源
有期限的唯一执行权 Lease 旧 holder 可能仍运行 新 token 成为有效 owner 外部资源拒绝旧 token
多节点本地更新可安全合并 CRDT 局部状态不完整 merge 后同状态 交换、结合、幂等
事务事实或可靠历史 不采用 DSM 主存储 局部成功可能不可撤销 收敛无法补偿副作用 事务、幂等、审计、重放

本篇如何兑现 DSM 价值

第二篇用 Register、Lease 和 CRDT 承担三类常见协调语义,使业务团队可以复用已定义的冲突裁决、租期和合并机制。价值取决于集合语义与业务不变量是否匹配;业务团队仍负责写明分区后果、fencing 和权威事实来源。

评审时的五个问题

  1. 这个状态的权威来源是谁?
  2. 丢失时能否从 peer 或权威源恢复?
  3. 分区期间允许两个节点各自成功吗?
  4. 外部副作用如何被 fencing、幂等或事务保护?
  5. 哪条实际命令能够证明选定语义,而不是只证明代码可编译?

常见错误

错误 纠正
用 Register 模拟 Lease 把 TTL、transfer 与外部 fencing 写进契约
用 CRDT 包装任意对象 先证明业务 merge 的代数性质
resolver 读取时间或随机数 保持纯、确定,并用输入反转检查交换律
只测试 happy path 注入旧 token、重复 delta、顺序变化和分区候选值

迁移练习

为优惠券剩余量、批处理 worker 所有权和页面浏览计数分别选择存储语义。若选择 DSM,写出失败窗口;若拒绝 DSM,说明需要的事务或历史保证。没有「三题都选 DSM」的加分项。

下一步

进入第三篇:把「最终一致」拆成成员视图、在线传播、漏失检测和 repair。