跳到主要内容
AIInfra学习路线

分离式事务的动态锁所有权 学习路线

围绕 AURA 论文系统化拆解 DM 事务的 atomic IOPS 物理瓶颈、动态锁所有权设计、在线学习与迁移协议、闭环控制与端到端复现的完整学习路线

Disaggregated Memory RDMA OCC Lock Ownership AURA AdaptX LOTUS CREST 分离式事务

模块十三的第 4 章已经把 FORD / Motor / LOTUS / AdaptX 的 design space 横向串了一遍。但当一个研究生真的要在这个方向上做工作时,光知道”有这些系统”远远不够——他需要知道为什么要走动态锁所有权这条路、cohort 怎么定义、迁移协议怎么不丢一致性、实验怎么设计才说服得了审稿人。本路线把 AURA 这一篇论文当作主轴,把所需的 RDMA / OCC / 控制系统 / 实验方法论基础全部沉淀进来,串联 9 章内容,从立题、设计、协议、控制、实验到端到端复现,全程对齐”看完能自己实现并辩护”的标准。

作者将根据该路线编写系列文章,把 AURA 这条研究链路从问题到落地讲到工程级深度。

📑 目录


🌟 全景概览:为什么动态锁所有权是 DM 事务的下一步

DM(Disaggregated Memory)事务系统过去十年的演化主轴是**“把状态搬到远端、把动作压到 RDMA 单边原语”。FaRM、FORD、Motor 把读写、版本、commit 路径都做到 one-sided,唯独锁的获取**仍然依赖 MN(Memory Node)RNIC 的 atomic(CAS / FAA)原语。这条路径在 ConnectX-3 上被压在 ~1 Mpps,在 ConnectX-6 Dx 上 5–10 Mpps——这是物理上限,不可水平扩。一旦工作负载的写锁热点 IOPS 超过这个数字,新增 CN 不再带来吞吐增长,反而引发 retry storm 让系统反向退步。

LOTUS 第一次把锁从 MN 提到 CN,但它假设应用提供稳定的 critical field,且不支持运行时漂移。AURA 在 LOTUS 之后回答两个 LOTUS 留下的问题:

  1. 如果 critical field 未知或随时间漂移,怎么办?
  2. 锁所有权一旦放到 CN,怎么在不丢一致性的前提下迁移?

AURA 的回答是把”哪些锁该归哪个 CN”做成一个在线学习 + 闭环控制的物理设计问题:

                MN(数据 + Fallback Lock)
                ──────────────────────────
                ↑ RDMA READ/WRITE/CAS(数据通路不变)

   ┌────────────┼────────────┐
   │            │            │
 ┌─▼─┐        ┌─▼─┐        ┌─▼─┐
 │CN₁│        │CN₂│        │CN₃│
 │   │ ◄────► │   │ ◄────► │   │   OwnerRpc(迁移 + 跨锁簇协调)
 │ ┌─┴──────┐ │ ┌─┴──────┐ │ ┌─┴──┐
 │ │OwnerLock│ │ │OwnerLock│ │ │…  │
 │ │  Table  │ │ │  Table  │ │ │   │
 │ └────────┘ │ └────────┘ │ └────┘
 │            │            │
 │  Trace → AccessGraph → CohortPlanner → MigrationCtrl
 └─────────── Affinity-aware Routing ──────────────────┘

🧠 核心洞察atomic IOPS 是固定预算,不能水平扩;唯一出路是把锁请求从 MN 路径搬走。静态搬走解决一半,动态搬走保证搬走的那部分始终对得上当前 workload。

🍎 直觉比喻:把 MN 想象成只有一个收银台的银行。LOTUS 的做法是预先把 VIP 客户分到各个支行(CN)单独服务;AURA 的做法是在线观察客流,谁多就把柜台动态搬到哪个支行——而且支行之间还能互相协作处理跨支行业务。

四个待解的核心权衡,贯穿后续 9 章:

权衡选择空间影响
锁权威位置MN 集中 / CN 单一所有 / CN 多副本atomic IOPS 压力 vs 协议复杂度
Cohort 粒度单 record / key_group / 大簇命中率 vs 迁移成本
决策频率离线 / 100ms / 5ms 闭环漂移适应性 vs 抖动风险
一致性策略等待迁移完成 / fallback to MN / 双权威可用性 vs 实现复杂度

🌟 一句话主旨AURA 把”锁放哪、谁说了算”从静态部署决策升级成在线物理设计问题——这是 DM 事务在 LOTUS 之后的下一步。


📖 章节导览

整个模块分为 9 章,从立题到复现:

主题核心问题关键产出
1DM 事务的 atomic IOPS 物理墙撞墙在哪、撞墙之后会发生什么atomic IOPS 实测数据 + retry storm 微观图
2RDMA / OCC / 分离式架构必要前置看 AURA 论文之前要打牢的概念ConnectX 代际差异表 + OCC 三阶段图
3设计空间地图:DM 锁热点的 N 种解法LOTUS / FORD / Motor / CREST 怎么分类设计空间矩阵 + Δ 表
4AURA 骨架:cohort、ownership、状态机、不变式12 个模块、I1–I4、3 状态机怎么协同模块架构图 + 不变式速记
5在线学习与 cohort 划分AccessGraph 怎么建、cohort 边界怎么决定merge/split 决策伪代码
6迁移协议:freeze-drain-handoff-publish4 阶段时序、epoch 单调、fallback corner case时序图 + 不变式证明草图
7闭环控制:AdaptX 折叠进 AURALoop A 反压、Loop B NIC counter、5ms 为什么是 5ms控制环 ASCII 图 + 抖动分析
8实验方法论:把故事讲圆的工程套路baseline 设计、bootstrap CI、negative regimes实验脚手架清单
9端到端实战:CloudLab/APT 复现 AURAreservation → bootstrap → run → CI 计算一键脚本 + 故障速查

🍎 学习顺序建议:第 1-2 章必读,建立”为什么要做”和”做之前需要懂什么”的基础;第 3 章看完你应该能默写 LOTUS 与 AURA 的 Δ;第 4-7 章是 AURA 设计的核心,按顺序啃;第 8-9 章在你已经准备发起实验时再读。


⏳ 里程碑论文时间线

2014 ──── FaRM (Dragojević et al., NSDI'14)         首篇系统性 RDMA OCC,奠基 DM 事务范式
2018 ──── LegoOS (Shan et al., OSDI'18)             Disaggregated OS 概念奠基
2018 ──── DrTM+H (Wei et al., OSDI'18)              hybrid verbs 调度
2022 ──── FORD (Zhang et al., FAST'22)              单版本 DM 事务,cache-line 对齐锁
2024 ──── Motor (Wu et al., OSDI'24)                MVCC + 一致版本表
2025 ──── LOTUS (Liu et al., arXiv'25)              首次把锁提到 CN,应用提供 critical field
2025 ──── CREST (Anonymous, ASPLOS'26)              开源实验框架,多层抽象
2026 ──── AURA (this guide, 2026)                   ★ 在线学习 + 闭环控制 + 动态锁所有权迁移

🍎 阅读顺序建议

  1. 打底:LegoOS(理解 disaggregation 哲学)→ FaRM(RDMA OCC 鼻祖)
  2. DM 事务谱系:FORD(单版本)→ Motor(MVCC)→ LOTUS(锁分离)→ AURA(动态锁所有权,本路线主轴)
  3. 横向工具:CREST 源码(实验载体)+ ConnectX-3/5/6 atomic 行为差异

🛠️ 设计空间速查表

锁热点应对策略

策略代表系统假设局限
MN-only(基线)FORD / Motor / CREST网络快、atomic IOPS 够用工作负载一热就触顶
数据迁移MorphoSys / Lion 类数据可被搬移DM 架构下违反 disaggregation 原则
Routing-onlyCREST 路由扩展把热点请求集中到同一 CN不减 atomic 总量
Static owner partitionLOTUScritical field 已知且稳定漂移工作负载退化
Dynamic owner placementAURA无需先验、在线学习实现复杂度最高

AURA 关键模块

模块职责章节
TraceCollector收集事务访问轨迹第 5 章
AccessGraphProfiler在线建权重图第 5 章
LockCohortGenerator决定 cohort 边界(merge/split)第 5 章
OwnershipPlanner决定每个 cohort 的 owner CN第 5 章
TransferController执行迁移 4 阶段协议第 6 章
OwnerMapPublisher发布 epoch + OwnerMap 快照第 6 章
AffinityRouter客户端按 OwnerMap 路由事务第 4 章
TxnExecutor在 owner CN 上执行事务第 4 章
OwnerLockTableCN 本地锁表第 4 章
OwnerRpcCN 间锁请求 / 跨 cohort 协调第 4 章
FallbackLock回退到 MN atomic CAS第 6 章
AuraStats监控指标(NIC 计数、abort 率)第 7 章

三种状态与不变式

状态含义进入条件退出条件
OWNED某 CN 唯一持有该 cohort迁移成功触发 split / merge / migrate
TRANSFERRING正在迁移中,请求被 drain迁移开始迁移完成 / 超时
FALLBACK退回 MN atomic 路径owner 失败 / 冷数据工作负载再次变热
不变式内容
I1任一时刻同一 cohort 的权威只在一处
I2epoch 单调递增
I3迁移期间所有未完事务必须 drain 或 abort
I4数据 commit 路径不依赖锁所有权位置

🧭 新人破局指南

学习路径(推荐 4-6 周)

第 1 周:立题与基础

  • 读完第 1 章 + 第 2 章
  • 在 APT 集群跑 ib_atomic_bw 实测 ConnectX-3 atomic 上限
  • 在 CloudLab c6525 跑同样测试,对比 ConnectX-6 数字
  • 目标:能用一句话说清”为什么 DM 事务必须改”

第 2 周:相关工作 + AURA 骨架

  • 读 FORD / Motor / LOTUS 三篇 paper(精读 commit 路径与锁路径)
  • 读完第 3 章和第 4 章
  • 默画 AURA 12 模块协同图
  • 目标:能徒手画出 AURA 与 LOTUS 的 Δ 表

第 3-4 周:AURA 核心设计

  • 读完第 5 / 6 / 7 章
  • 在草稿上把 freeze-drain-handoff-publish 的 4 阶段时序写出来
  • 推演两个 corner case:(a) 迁移中 owner CN 挂;(b) 跨 cohort 事务遇上 split
  • 目标:能向人复现 AURA 论文 §3 的所有图

第 5 周:实验方法论

  • 读第 8 章
  • 把模块十三第 4 章的 baseline 拿出来对照 AURA paper 实验设计
  • 自己写一个 bootstrap CI 脚本(参考 PROGRESS.md 的工程笔记)
  • 目标:能独立设计一组对 AURA 不利的实验(critic 视角)

第 6 周:动手复现

  • 第 9 章实战
  • 在 CloudLab d6515 / Utah c6525 上跑通一组数据点
  • 把数据填进 paper 的 §6 模板
  • 目标:拿到一个可写进 paper 的 figure

三个高频踩坑

  1. 把”锁提到 CN”等同于 LOTUS:LOTUS 是静态 + 应用先验,AURA 是动态 + 在线学习。两者方法论上是代差,不是性能增量。看到 paper 里有人混淆,第一时间纠正。
  2. 以为 cohort 必须连续:cohort 是 key_group 的任意子集,不要求 key 在物理空间相邻。这是 AURA 在 TPC-C 里能 cross-table 聚簇的前提(NewOrder 跨 7 张表但都共享 wid)。第 4 章会展开。
  3. 把闭环窗口当成”越短越好”:5ms 是抖动 / 反应速度 / NIC counter 噪声 / 迁移成本平衡的结果,不是越短越好。第 7 章会用频谱分析说清楚。

核心思维:动态锁所有权 = 在线物理设计

优化牺牲换取
静态 owner(LOTUS)应用先验、漂移退化实现简单、单次部署
动态 cohort 划分(AURA)实现复杂度工作负载漂移自适应
闭环 5ms 窗口决策抖动风险跟随热点漂移
epoch + drain 迁移短暂 stall不丢一致性
Fallback to MN局部低效故障安全 + 渐进部署

🌟 理解了这张表,就掌握了本模块核心思维:没有”零代价的动态”,只有 trade-off 选择。AURA 的贡献不是”更快”,而是”在更弱假设下仍然可行”。


📚 参考资料

综述与背景

  • The Datacenter as a Computer (Barroso et al., 3rd ed., 2018) —— Warehouse-scale computing 奠基书
  • A Survey on Disaggregated Memory (Wang et al., 2023) —— 分离式内存早期综述

关键论文(DM 事务谱系)

  • FaRM (Dragojević et al., NSDI’14) —— 首篇系统性 RDMA OCC:USENIX 链接
  • FORD (Zhang et al., FAST’22) —— 单版本 DM 事务:USENIX 链接
  • Motor (Wu et al., OSDI’24) —— MVCC + 一致版本表:USENIX 链接
  • LOTUS (Liu et al., arXiv’25) —— 静态锁分离 + 100ms 反应再均衡(首次把锁提到 CN)
  • CREST (Anonymous, ASPLOS’26) —— 开源实验框架(本路线第 8/9 章实战载体)
  • AURA (本路线主轴, 2026) —— 动态锁所有权 + 闭环控制 + 在线 cohort 学习

关键论文(参照与对比)

  • MorphoSys (Lemur et al., VLDB’21) —— 数据物理设计在线学习的代表
  • Lion (Yan et al., 2024) —— 访问图驱动 partition 重排
  • DrTM+H (Wei et al., OSDI’18) —— Hybrid verbs 调度
  • Pond (Li et al., ASPLOS’23) —— Microsoft 云端 CXL 1.1 实测

工业系统与代码

  • CREST:本路线第 8/9 章实战载体(开源 RDMA 事务框架)
  • Mellanox OFED 4.9:ConnectX-3 兼容最后一版(APT 集群必装)
  • rdma-core:Ubuntu 22.04 inbox 驱动(ConnectX-5+ 可用)

实战环境

  • CloudLabcloudlab.us —— c6525-25g(ConnectX-6 Dx)/ d6515 是主战场
  • APT cluster (Utah):c6220 + ConnectX-3 56Gb IB —— LOTUS 同硬件复现 + 跨硬件对照
  • perftestib_atomic_bw / ib_read_bw 是测 atomic IOPS 物理上限的标准工具