跳到主要内容
分离式内存事务系统全景调研

第4章:协议设计派系全图 —— DM 事务的 6 个二选一

把 DM 事务领域的设计选择拆成 6 个二选一维度(OCC/2PL、单版本/MVCC、集中锁/分散锁、有 leader/无 leader、同步 validate/异步、单边/混合 verbs),把所有系统填进派系矩阵

DM 事务 协议设计 OCC MVCC 派系 调研

第 3 章按问题维度拆了 8 条主线,本章换成”协议设计派系”——把领域所有论文按 6 个二选一维度归类。这 6 个维度构成了 DM 事务的”协议基因图谱”——任何系统都是 6 维空间里的一个点。读完你应该能拿到这个领域所有 30+ 篇论文的派系归属,并能解释每对二选一背后的工程权衡。这是看任何新论文时**最快定位”它是哪一派”**的工具。

📑 目录


1. 6 个二选一维度

   D1: 并发控制      OCC          ←→  2PL
   D2: 版本           单版本        ←→  MVCC
   D3: 锁权威位置    集中(MN)    ←→  分散(CN)
   D4: leader 模型   有 leader     ←→  无 leader
   D5: validate     同步           ←→  异步/流式
   D6: verbs        单边主路径    ←→  hybrid 单边+双边

每个维度独立选择,6 维构成 64 个理论组合(实际只有约 10 个被探索过)。

🌟 关键事实所有 DM 事务系统都用 OCC(D1=OCC)——这一维几乎没有分歧。其他 5 维都有真实派系存在。


2. 派系 D1:OCC vs 2PL

2.1 派系定义

派系协议特征
OCC乐观并发控制不取锁,commit 时验证
2PL两阶段锁事务开始时取锁

2.2 为什么 DM 几乎全选 OCC

第 1 章已经详细论证。简短总结:

问题2PLOCC
远端等待语义必须(远端线程持锁)不需要
死锁检测必须(远端协议)不存在死锁
适合 DM 吗

2.3 派系归属

   OCC 派(几乎全部):
   ─────────────────
   FaRM, DrTM, FaSST, DrTM+H, FORD, Motor,
   Outback, Outpost, LOTUS, CREST, AURA, ...
   
   2PL 派:
   ────────
   (无主流 DM 系统选 2PL)

🌟 结论D1 维度上,DM 事务是单一派系——全部 OCC。


3. 派系 D2:单版本 vs MVCC

3.1 派系定义

派系含义适合场景
单版本每个 record 只有一个最新版本写多 + 短事务
MVCC保留多个历史版本SI 隔离 + 长事务(snapshot 读)

3.2 关键 trade-off

维度单版本MVCC
内存占用高(多版本)
读写阻塞写阻塞读写不阻塞读
GC 复杂度
隔离级别SRSI / SR
事务时长短适合长事务也 OK

3.3 派系归属

   单版本派:
   ────────
   FaRM, DrTM, FaSST, DrTM+H, FORD, AURA-baseline
   
   MVCC 派:
   ────────
   Motor (OSDI'24)
   Outpost (ASPLOS'24,可选 MVCC)
   ↑ 这两个是 MVCC 在 DM 上的代表

3.4 DM 上 MVCC 的特殊挑战

第 3 章 §6 已经详细讨论。核心难点:

  1. 版本表布局:inline vs chain
  2. GC 协调:CN 主导 GC(MN 不参与)
  3. 一致快照:全局 ts 来源(Motor 用 epoch + lease)

3.5 派系预测

互补:未来 5 年 MVCC 会进一步成为主流——更多 OLTP 工作负载需要 SI 隔离。Motor 之后会有更多 MVCC 论文


4. 派系 D3:集中锁 vs 分散锁

4.1 派系定义

派系锁权威位置
集中锁(MN-side)锁字在 MN 内存,CN 通过 RDMA CAS 操作
分散锁(CN-side static)应用提供 critical field,每个 key 静态分配到一个 CN
分散锁(CN-side dynamic)在线学习 cohort,动态调整

4.2 关键 trade-off

维度集中锁分散静态分散动态
atomic IOPS 压力
应用先验必须
漂移工作负载OK退化自适应
实现复杂度

4.3 派系归属

   集中锁派(最多):
   ─────────────────
   FaRM, DrTM, FaSST, DrTM+H, FORD, Motor, CREST baseline
   
   分散静态派:
   ──────────
   LOTUS (arXiv'25)
   
   分散动态派:
   ──────────
   AURA (本路线主体)

4.4 派系演化方向

   集中(FaRM ... FORD ... Motor)

            │  撞墙:atomic IOPS 上限

   分散静态(LOTUS)

            │  撞墙:应用先验、漂移退化

   分散动态(AURA)

            │  撞墙:实现复杂、跨 cohort 退化

   未来:分散动态 + ML 预测?多副本 owner?

🌟 结论D3 维度是 DM 事务过去 12 年最活跃的维度——FaRM → FORD → LOTUS → AURA 这条主线就是 D3 的演化。


5. 派系 D4:有 leader vs 无 leader

5.1 派系定义

派系含义
有 leader某个节点是协调者(事务排序、版本仲裁等)
无 leader所有 CN 平等,靠协议自身保证一致

5.2 关键 trade-off

维度有 leader无 leader
协议复杂度低(leader 决定一切)高(协议必须自洽)
单点风险leader 故障
性能leader 是瓶颈完全分散
工业接受度高(Spanner / Cockroach)

5.3 派系归属

   有 leader 派:
   ──────────────
   - 大多数 DM 系统**有"轻量 leader"**:
     - FaRM 有 config service(基于 Paxos)
     - LOTUS / AURA 有 OwnerMapPublisher(单 leader publisher)
     - Motor 有 timestamp coordinator
   
   完全无 leader:
   ──────────────
   - 真正完全无 leader 的 DM 系统不多
   - 接近的是 FORD(commit 路径无 leader,但 config 仍需 Paxos)

5.4 一个语义陷阱

互补“有 leader” 和 “Paxos-based”是两件事

  • 大多数 DM 系统用 Paxos / Raft 维护 config / membership
  • 但 commit 路径走 leader(直接 RDMA 单边)
  • 所以严格说大多数 DM 是”轻 leader”——leader 不在事务关键路径上

🌟 结论D4 维度上 DM 主流是”轻 leader”——leader 只管 config,不管 commit。


6. 派系 D5:同步 validate vs 异步

6.1 派系定义

派系含义
同步 validate事务在 validate 阶段阻塞等待 RDMA READ
异步 / 流式 validate多事务的 validate 流水线,不阻塞

6.2 关键 trade-off

维度同步异步
单事务延迟
实现复杂度
Abort 处理简单复杂(流水线后期 abort 要回滚多事务)
吞吐

6.3 派系归属

   同步派(早期主流):
   ──────────────
   FaRM, DrTM, FORD, Motor (基础版本)
   
   异步 / 流式派:
   ──────────────
   Outback (NSDI'23)
   Outpost (ASPLOS'24)  ← 当前 SOTA

6.4 异步带来的工程挑战

异步 validate 必须解决:

  1. 流水线 dependency:如果 tx_A 的 validate 还没完成,tx_B 能不能开始 commit?
  2. abort 级联:tx_A abort 时如果 tx_B 已经基于它继续了,需要级联 abort
  3. memory order:保证 validate 看到的版本是真正”已完成”的

🌟 结论D5 维度未来 3 年会成主流——异步 validate 是 OCC 性能的关键释放。


7. 派系 D6:单边 verbs vs hybrid

7.1 派系定义

派系主路径
单边主路径READ / WRITE / CAS / FAA 为主,必要时用控制面 RPC
Hybrid同时大量使用 SEND/RECV

7.2 关键 trade-off

维度单边Hybrid
MN passive✓(纯 DM)✗(需要 active server thread)
远端 batch
协议复杂度
是否纯 DM✗(半 DM)

7.3 派系归属

   纯单边派(主流 DM):
   ─────────────────────
   FaRM, DrTM, FORD, Motor, LOTUS, CREST, AURA
   
   Hybrid 派:
   ─────────
   FaSST (OSDI'16)
   DrTM+H (OSDI'18)
   NAM-DB (VLDB'20)

7.4 Hybrid 的存在价值

互补:FaSST/DrTM+H 论证了 hybrid 在某些场景比单边快——特别是当:

  • 远端能 batch 处理多请求(amortize CPU 开销)
  • 单事务有大量小 op(atomic 串行化代价大)

主流 DM 哲学要求 MN passive——Hybrid 派算”半 DM”。

7.5 SmartNIC 的可能复兴

未来 SmartNIC(DPU)越来越强(DPDK / Bluefield-3):

  • 远端 NIC 上能跑用户代码(不占主机 CPU)
  • 仍然算”被动主机”——主机 CPU 不参与
  • 可能让 Hybrid 派复兴

🌟 结论D6 维度上主流是单边,但 SmartNIC 可能改写


8. 完整派系矩阵

8.1 主要系统的 6 维定位

系统D1D2D3D4D5D6
FaRMOCC单版本集中轻 leader同步单边
DrTMOCC+HTM单版本集中轻 leader同步单边
FaSSTOCC单版本集中轻 leader同步Hybrid
DrTM+HOCC单版本集中轻 leader同步Hybrid
FORDOCC单版本集中轻 leader同步单边
MotorOCCMVCC集中轻 leader同步单边
OutbackOCC单版本集中轻 leader异步单边
OutpostOCC单/MVCC集中轻 leader流式单边
LOTUSOCC单版本分散静态轻 leader同步单边
CRESTOCCMVCC(cell-level)集中(masked-CAS)轻 leader同步单边
AURAOCC单版本分散动态轻 leader同步单边

8.2 矩阵的几个观察

🌟 观察 1D1 全是 OCC——这一维没有分歧。

🌟 观察 2大多数系统在 5 维上一致(OCC + 单版本 + 集中 + 轻 leader + 同步 + 单边)——这是 DM 事务的”主流默认”。

🌟 观察 3每个有突破的论文只在 1-2 维上偏离主流

  • FaSST/DrTM+H 偏离 D6
  • Motor 偏离 D2
  • Outback/Outpost 偏离 D5
  • LOTUS/AURA 偏离 D3

重点论文写作的暗示——你的工作只需要在一维上做出贡献,其他维度跟主流走。这也是 paper review 的常用判别标准。

8.3 未被探索的组合

6 维 64 个理论组合,被探索的只有约 10 个。开放方向:

组合是否被探索
OCC + MVCC + 分散动态 + 异步 + 单边没人做过(合体方向)
OCC + MVCC + 分散静态没人做过
OCC + 单版本 + 分散动态 + 异步 + Hybrid没人做过

9. 派系演化趋势

9.1 12 年的派系迁移

   2014                                    2026
   ────                                    ────
   D1: OCC ─────────────────────────────→ OCC(不变)
   D2: 单版本 ──────────── Motor ─────→ MVCC 渐成主流
   D3: 集中 ─────── LOTUS ────── AURA → 分散动态
   D4: 轻 leader ──────────────────────→ 轻 leader(不变)
   D5: 同步 ──── Outback ── Outpost ──→ 异步/流式
   D6: 单边 ──────────────────────────→ 单边(SmartNIC 可能改写)

9.2 主线维度的活跃度

维度活跃度(过去 5 年)未来 5 年预测
D1 OCC vs 2PL低(已固化)不变
D2 单版本 vs MVCC(Motor 刚开)MVCC 普及
D3 锁权威极高(LOTUS / AURA)进一步深化(多副本 owner?)
D4 leader不变
D5 validate中(Outback / Outpost)异步成主流
D6 verbs低(SmartNIC 待观察)SmartNIC 可能改变

9.3 派系组合的预测

未来 3 年最可能出现的论文:

  1. MVCC + 分散锁(Motor × AURA 合体)
  2. MVCC + 异步 validate(Motor × Outpost)
  3. 分散锁 + ML 预测(AURA + LSTM workload prediction)
  4. CXL-native DM 事务(D6 维度新硬件)
  5. 多副本 owner(D3 进一步深化)

🌟 建议博士生选题时看派系矩阵的”空白格”——那里通常有可发表的工作


✅ 自我检验清单

  • 6 个维度:能默写 D1–D6 各自的二选一
  • D1 OCC 主导:能解释为什么所有 DM 都用 OCC
  • D2 单版本 vs MVCC:能列出 trade-off 表
  • D3 三种锁布局:能区分集中、分散静态、分散动态
  • D4 轻 leader:能解释”轻 leader”和 Spanner 的”重 leader”区别
  • D5 异步 validate:能描述 Outpost 流水线的核心 insight
  • D6 hybrid 存在价值:能用一个场景说明 hybrid 何时优于纯单边
  • 派系矩阵填空:能给至少 8 个系统填出 6 维归属
  • 主流默认:能默写”OCC + 单版本 + 集中 + 轻 leader + 同步 + 单边”
  • 每个突破只偏离 1-2 维:能用至少 4 个例子佐证
  • 未被探索的组合:能列出至少 3 个未做过的组合
  • 派系迁移趋势:能预测未来 5 年最可能产出的方向

📚 参考资料

关键论文(按维度)

D1 OCC vs 2PL:FaRM, FaSST, FORD(全部 OCC) D2 单版本 vs MVCC:FORD(单版本),Motor(MVCC) D3 锁权威:FORD(集中),LOTUS(分散静态),AURA(分散动态) D4 leader:FaRM(轻 leader + Paxos config service) D5 validate:FORD(同步),Outback / Outpost(异步) D6 verbs:FORD(单边),FaSST / DrTM+H(hybrid)

综述

  • A Survey on Disaggregated Memory —— 派系总览
  • Anuj Kalia’s blog series on RDMA

相邻领域

  • Spanner / Cockroach —— 经典分布式事务的派系对照(用于看清”DM 的 D4 轻 leader 跟它们不一样”)