跳到主要内容
分离式事务的动态锁所有权

第3章:设计空间地图 —— DM 锁热点的 N 种解法

把 LOTUS / FORD / Motor / CREST / 路由方案放进同一张设计空间矩阵,给出每个系统的 Δ 表与适用边界

LOTUS FORD Motor CREST AURA 设计空间 相关工作

第 1 章建立了”必须把锁请求从 MN 移走”的命题。但解决这个问题的设计空间不止 AURA 一种——routing、static partition、data migration、dynamic owner 各自占一个角落。本章把所有相关工作放进同一张矩阵,给每个系统的 Δ 表(它解决了什么 / 它假设了什么 / 它在哪里失效),并且严格区分”概念上不同”和”实现细节不同”——读完你应该能徒手画 AURA 与 LOTUS 的 Δ 表,并清晰回答”为什么 AURA 是新工作不是优化”。

📑 目录


1. 设计空间矩阵:四个维度

1.1 把所有方案放进同一坐标系

只有把不同方案放进同一坐标系,才能避免”我和它们各做各的”这种含糊。AURA 论文 §2 的 design space 用四个维度:

维度取值空间关键问题
D1 锁权威位置MN-only / CN-static / CN-dynamic / 多副本锁请求最终打到谁的 RNIC
D2 决策频率静态部署 / 反应式(100ms+)/ 闭环(5ms)/ 离线分析跟随漂移的能力
D3 一致性保证强 / 最终 / 应用解决迁移期间会不会出错
D4 假设强度无先验 / 应用提供 schema / critical field应用可移植性

1.2 五系统在矩阵中的位置

系统D1 锁权威D2 决策频率D3 一致性D4 假设
FORDMN-only静态强(OCC SR)无先验
MotorMN-only静态强(SI/SR)无先验
CREST(cell-level + MVCC)MN-only静态无先验
CREST + routing(本研究自加)MN-only静态(路由策略)无先验
LOTUSCN-static反应式 100ms应用提供 critical field
AURACN-dynamic闭环 5ms无先验(自学)

1.3 二维投影:D1 × D2

   D2 决策频率



 闭环 ┤                          ★ AURA

反应式┤                LOTUS ●


   静态┤  FORD●  Motor●  CREST●

      └─────────────────────────────────► D1 锁权威
         MN-only          CN-static  CN-dynamic

🧠 关键洞察:左下角是 baseline(撞墙);右上角是 AURA。LOTUS 在中间——它解了”锁权威往右移”,没解”决策频率往上”。这是为什么 AURA 不是 LOTUS 的”优化”,而是设计空间另一个角落。

1.4 维度之间的耦合

四个维度不是独立的:

  • D1 越往右,D2 必然越复杂:CN-dynamic 需要在线决策,不可能再静态
  • D2 越往上,D3 越难保证:闭环 5ms 决策必须有强一致迁移协议保护
  • D4 越弱(无先验),D2 必然越复杂:没有应用提示就只能在线学

🌟 结论四个维度是相互拉扯的”约束链”。AURA 的贡献本质上是”放松了 D4 的同时保住了 D3”——这是论文 abstract 必须强调的命脉。


2. 数据迁移派:MorphoSys / Lion 路线

2.1 思路:把数据搬到访问它的节点

传统分布式数据库的物理设计核心问题是”数据放哪、谁是主副本、什么时候 split/merge”。MorphoSys(VLDB’21)把这些决策做成在线操作,用学到的代价模型持续调整。Lion(2024)把事务访问关系建成图,把共同访问的分区聚成 clump,再通过副本重排和预测减少分布式事务。

2.2 在 DM 架构下的根本问题

问题解释
违反 disaggregation 原则数据集中放在 MN 是 DM 架构的基本假设,频繁迁移破坏资源解耦
元数据复杂度每条 record 有自己的”当前位置”,索引必须同步更新
一致性代价迁移期间 reader 必须等待或重定向
内存复制开销每次迁移要 RDMA WRITE 一遍数据

🍎 直觉比喻:搬数据 = 搬整个仓库;搬锁 = 搬调度台。仓库里货物每天都换,但调度台只是一个小桌子——AURA 选择只搬调度。

2.3 一组对比数字

假设 record 平均 256B,锁字 8B:

操作数据量频率
迁移 1 个 record(数据派)256B + 元数据取决于访问漂移
迁移 1 个 cohort(AURA)~64B 锁状态 + 元数据5ms 决策

32 倍的数据量差距——这是为什么 AURA 选择只搬锁。

2.4 数据迁移派对 AURA 的启发

互补:MorphoSys / Lion 的核心方法论 AURA 还是借鉴的:

  1. 在线学习成本模型(MorphoSys):AURA 的 OwnershipPlanner 用了类似的代价函数
  2. 访问图聚类(Lion):AURA 的 LockCohortGenerator 直接用了访问图建 cohort
  3. 持续重排:AURA 的闭环也借鉴了 MorphoSys 的”持续优化”思路

区别只在”搬什么”——这就是 AURA 和这条路线的精确差异。


3. Routing-only 派:在 CREST 之上加路由

3.0 先澄清 CREST 本身(避免误解)

⚠️ 本路线之前章节里多次把 CREST 简单概括为”路由扩展”——这是不准确的。基于仓库 README + 源码核对,CREST 的真实定位是:

  • 针对高冲突 / 倾斜 OLTP 负载的 DM 事务系统(README 原话)
  • 协议:OCC + masked-CAS commit(必须 OFED 4.9-7.1.0.0)
  • MVCC 而非单版本(带 RecordVersion + write_ts + 一致快照检测)
  • cell-level + record-level 两档 CC(细粒度并发)减 false conflict
  • column-level rw 追踪:仅传修改列
  • 仓库自实现 from scratch + 内置 FORD / Motor 对比 baseline
  • 4 类 workload:TPC-C / SmallBank / TATP / YCSB

但锁仍在 MN 上——atomic IOPS 物理墙仍是 CREST 的天花板。这就是为什么本节讨论”在 CREST 之上加 routing”——routing 是一个独立的实验扩展(本研究自加的 motivation),不是 CREST 的主体。

3.1 思路:把”访问相似数据”的事务路由到同一个 CN

直观逻辑:如果 CN_1 和 CN_2 总在抢同一个 record,那把它们都送到 CN_1,就只剩 CN_1 内部并发,外部冲突就没了。

3.2 实测数字(接第 1 章 §4)

路由策略吞吐 (KTPS)Abort rate
随机250.45.6%
分区路由(按 wid)256.42.6%

Abort 减半,吞吐只 +2.4%——为什么差距这么大?

3.3 数学解释

设 atomic 上限 λ=5.8 Mpps\lambda^* = 5.8\text{ Mpps},CN 们的总 CAS 速率是 λ\lambdaλ\lambda 不被路由改变(路由只改”哪个 CN 发”,不改”发多少”)。吞吐是:

Tput=min(λ,λ)(1pabort)\text{Tput} = \min(\lambda, \lambda^*) \cdot (1 - p_{\text{abort}})

abort 从 5.6% 减到 2.6%:

TputnewTputold=10.02610.0561.032\frac{\text{Tput}_{\text{new}}}{\text{Tput}_{\text{old}}} = \frac{1 - 0.026}{1 - 0.056} \approx 1.032

实测 +2.4%,和理论 +3.2% 数量级一致(小差距来自 retry 路径上的隐藏开销)。

🌟 结论routing-only 在 atomic 触顶下只能动边际。它和 LOTUS / AURA 不互斥(可叠加),但单独使用永远跨不过物理墙。

3.4 routing 仍然有用,但要叠加在哪里

互补:路由策略可以叠加:

  • 叠在 LOTUS 之上:把”应该归 owner CN_X 的事务”路由到 CN_X,本来就是 LOTUS / AURA 的 AffinityRouter 做的事
  • 叠在 AURA 之上:在 cohort owner 不命中时,仍然可以用 routing 策略减少跨 cohort 调用

routing 不是替代品,是增量


4. Static owner 派:LOTUS

4.1 LOTUS 的核心贡献

LOTUS(arXiv 2025)是第一篇系统性证明”锁可以离开 MN”的工作。它的关键设计:

  1. 应用声明 critical field:每张表有一个或多个”主排序字段”
  2. 按 critical field hash → owner CN:每个值落到一个固定 CN
  3. commit 时本地取锁:owner CN 本地维护锁表,不用 RDMA CAS
  4. 100ms 反应式调整:观察热点变化后调整 partition

4.2 LOTUS 的数学胜利

在 critical field 已知 + 稳定的工作负载下:

指标MN-onlyLOTUS
远端 atomic CAS / commit~30
单事务 commit 延迟~10–20µs~5–10µs
Atomic IOPS 上限影响严重消失

🌟 核心收益:把 atomic 从 commit 路径上完全移除——这是从根上解决问题。

4.3 LOTUS 必须假设什么

假设实际成立度
critical field 由应用声明单表场景容易;跨表 join 难
工作负载分布在 critical field 上稳定静态 OLTP 容易;漂移负载难
critical field 是单一维度TPC-C wid 单维 OK;复杂 schema 不行

🍎 直觉比喻:LOTUS 像是”VIP 客户预先分到各支行”——支行能服务 VIP 是因为客户没换支行。一旦客户开始随机切支行,VIP 服务就退化到打电话回总部确认

4.4 LOTUS 的反应式 100ms 调整局限

LOTUS 的 100ms 是”出问题再修”的反应式:

  • 热点出现 → 100ms 后才检测到 → 100ms 后开始重新 partition → 期间已经撞墙
  • 漂移频率 > 1Hz 时反应不过来

这是 AURA 把窗口压到 5ms 的动机——闭环 + 主动预测 vs 反应式 + 滞后修复。


5. Dynamic owner 派:AURA

5.1 AURA 的方法论代差

维度LOTUSAURA
决策来源应用声明 critical field在线学习 access graph
cohort 粒度由 critical field 决定(static partition)任意 key_group 子集(cohort)
决策频率反应式 100ms闭环 5ms
迁移协议弱(粗暴 reassign)freeze-drain-handoff-publish
应用先验必须不需要
漂移工作负载退化跟随漂移

5.2 三件 AURA 必须比 LOTUS 多做的事

  1. 学 cohort 边界(无需应用提供)—— 第 5 章
  2. 形式化迁移协议(保证 I1–I4)—— 第 6 章
  3. 闭环控制 + AdaptX Loop A/B(5ms 跟漂移)—— 第 7 章

这三件每一件都不是”LOTUS 的优化”——是 LOTUS 没解决的全新问题

5.3 AURA 在 stable 工作负载下不胜出,是诚实的

工作负载LOTUSAURAΔ
stable + critical field 已知100%~97–100%~0–3% 损失(profile 开销)
drifting退化 30–60%100%2–5×
unknown critical field不适用70–90%N/A → 70–90%

🌟 AURA 的承诺不是更快,是更广。在 LOTUS 假设成立时不输(甚至略输 profile 开销),在它假设不成立时大幅领先——这是诚实但有力的范围扩张。


6. AURA Δ 表:与每个工作的精确差异

6.1 Δ 表的标准格式

Δ 维度与谁比AURA 怎么不同
锁路径FORD / Motoratomic 从 MN 移到 CN
atomic 总量CREST routing真减少而不仅是 abort 下降
应用先验LOTUS不需要 critical field
决策频率LOTUS5ms 闭环 vs 100ms 反应
迁移协议LOTUS形式化 4 阶段 + 不变式
cohort 灵活性LOTUS任意 key_group 子集 vs 必须 contiguous
数据搬不搬MorphoSys / Lion不搬数据,只搬锁权威

6.2 与每个相关工作的”是否互斥”

工作与 AURA 关系可叠加吗?
FORD / Motorbaseline用作对比
CREST routing正交补丁可叠加(AURA 在 fallback 路径下仍可路由)
LOTUS static partition同一空间不同点不可叠加(同一时间只有一种锁权威)
MorphoSys data migration不同问题(搬数据 vs 搬锁)理论上可共存
AdaptX (loop A/B)被吸收进 AURA(第 7 章)已是 AURA 一部分

6.3 一句话总结每对差异

  • AURA vs FORD/Motor:不再被 atomic 上限卡住
  • AURA vs CREST routing:真减少 atomic 总量,不只是 abort
  • AURA vs LOTUS:方法论代差——动态 + 在线学,无需应用先验
  • AURA vs MorphoSys:搬调度而不是搬数据

7. 设计空间的空白处

7.1 AURA 之后的开放方向

写完上面五系统的对比,再看一眼矩阵——还有哪些角落没人填?

空白角落描述难点
多副本 owner一个 cohort 同时由 2+ CN 持有锁I1 唯一性如何放松而不破坏一致性
跨 DC AURA多机房 OwnerRpc网络 RTT >> MN atomic,AURA 反而更慢
CXL pool 上的 owner锁权威放在 CXL 共享内存而不是 CNCXL 一致性域 + 失效域
AURA + ML 预测用 LSTM 预测漂移,提前迁移预测错误的代价分析
异构 NIC AURA一个集群混 ConnectX-3/5/6atomic 能力不一致下的 cohort 放置
持久化 owner stateowner CN crash 后 state 不丢PMEM / RDMA 持久化协议

7.2 几个值得思考的开放问题

  1. AURA 在 multi-tenant 场景里怎么做隔离?两个租户共享 CN,但 cohort 不能交叉访问。
  2. AURA 的 cohort 数量上限是多少?OwnerMap 太大会影响 AffinityRouter 效率。
  3. AURA 在 GPU/CXL/PMEM 异构内存层级上能否扩展?锁权威可以放在 GPU HBM 上吗?
  4. AURA 与上层 SQL 引擎如何配合?query planner 能否利用 cohort 信息做 hint?

🧠 关键洞察设计空间的”空白”往往不是没人想到,而是没人做出来——因为某个维度的代价过高。比如多副本 owner 不是没人想,是 I1 的形式化保证需要新协议。

7.3 对读者的建议

读到这里,你应该已经能:

  1. 把任何一篇 DM 事务新论文准确放进矩阵
  2. 用 Δ 表回答”它和 LOTUS / AURA 的关系”
  3. 找到设计空间的空白角落作为新工作灵感

下一章正式进入 AURA 的内部架构。


✅ 自我检验清单

  • 设计空间矩阵:能默写四维矩阵(D1–D4)并把 5 个代表系统填进去
  • 维度耦合:能描述 D1 和 D2 之间的拉扯关系
  • 数据迁移 vs 锁迁移:能用一个数字(数据 vs 锁字节数比)说明 AURA 不搬数据
  • routing-only 局限:能用公式说明为什么 abort 减半但吞吐只涨 2-3%
  • routing 与 AURA 关系:能说明 routing 与 AURA 是否可叠加
  • LOTUS 假设链:能列出 LOTUS 必须的 3 个假设
  • LOTUS 反应式 100ms 局限:能解释为什么这窗口在漂移负载下不够
  • AURA Δ 表:能徒手画 AURA 与 LOTUS 的精确差异表(至少 5 个 Δ 维度)
  • AURA 在 stable 场景:能解释 AURA 不输 LOTUS 但也不大胜的原因
  • 设计空间空白:能指出至少 2 个 AURA 之后的开放方向

📚 参考资料

概念入门

  • 模块十三第 4 章 分离式内存事务系统精读:本仓库 docs/guides/模块十三-新型互联与远程内存系统/第4章-分离式内存事务系统精读.md

关键论文

  • FORD (Zhang et al., FAST’22)USENIX 链接 —— 单版本 baseline
  • Motor (Wu et al., OSDI’24)USENIX 链接 —— MVCC baseline
  • CREST(开源 DM 事务系统) —— 针对高冲突倾斜负载,cell-level OCC + MVCC + masked-CAS commit;本路线 §3 的 routing 扩展是在 CREST baseline 之上加的实验
  • LOTUS (Liu et al., arXiv’25) —— static owner partition 唯一相关工作
  • MorphoSys (et al., VLDB’21) —— 数据物理设计在线学习
  • Lion (et al., 2024) —— 访问图驱动 partition 重排
  • AURA (本路线主轴, 2026) —— dynamic owner placement

行业讨论

  • AURA 论文 §2 Related Work:本仓库 paper_lock_ownership_cn/sections/2_background_motivation.tex
  • AURA 论文 §3 Design Overviewpaper_lock_ownership_cn/sections/3_design_overview.tex

框架文档

  • CREST 仓库:本路线第 8/9 章实战载体
  • FaRM 论文(NSDI’14):早期 RDMA OCC 范式,是所有相关工作的祖先