Tigon:CXL Pod 的分布式数据库(OSDI 2025)

原题:Tigon: A Distributed Database for a CXL Pod

一句话总结:Tigon 在 CXL CAT 上协调跨主机活跃元组,并用软件协议处理大数据区;它不以原子操作“替代 2PC”。TPC-C 的 60/90 remote-transaction 设置中,最高比 DS2PL+ 2.5×、比 Motor 15.9–18.5×,但 0/0 remote 时 Tigon 落后 Sundial+/DS2PL+。

问题与动机

分布式事务传统靠网络消息+2PC,multi-partition 代价高。RDMA disaggregated memory 延迟仍比本地 DRAM 高 1–2 数量级。CXL pod(8–16 机共享 CXL)可用 load/store + 有限 HWcc 做跨机同步,但 CXL 延迟/带宽差于 DRAM,且 HWcc 仅 dozens–hundreds MB。

关键观察 / 隐含假设

  • 观察 1:数据库很大,但任意时刻 CAT(跨主机并发读写的 tuple 集)很小——TPC-C 平均 39 tuple/txn,千核并发约 39K tuple ≈ 7MB。
    • 依赖假设:txn 触碰 tuple 数有界;in-memory DB 并发度≈核数。
    • 可能失效场景:大范围扫描/全表锁导致 CAT 膨胀,CXL 带宽成瓶颈。
  • 观察 2:索引与 latch 需要频繁原子同步 → 放 HWcc;tuple 体可放 SWcc 并用 DB 自身 latch 协议做软件一致性。
    • 依赖假设:HWcc 容量可装下热索引/metadata;其余靠显式迁移。
    • 证据强度:强——敏感性实验变 HWcc 大小。
  • 假设 1:单 host 执行 txn 并本地日志即可 durable,索引其他 host 可在恢复时重建,从而避免 2PC。
    • 依赖假设:fail-stop + 本地 SSD log;恢复逻辑正确实现。

核心方法

Pasha 式分区 + 动态提升:owner 在 DRAM;跨主机访问时 owner 把 tuple 迁入 CXL CAT。

Shortcut pointer:owner 缓存 CXL 中 tuple 位置,减 index 查找。

增强 2PL + next-key locking + scalable logging:无 2PC commit。

SWcc 协议:与 tuple latch 协同,减少 HWcc↔DRAM 来回。

设计取舍

  • 取舍 1:绑定 CXL pod 规模(~16 机),非全球分布式。
  • 取舍 2:显式数据迁移逻辑复杂,换网络消息风暴消除。
  • 边界条件:CAT 过大时 CXL 带宽/延迟劣势显现。

实验与结果

指标、基线与边界:transaction throughput、scaling、migration/bandwidth、latency;Tigon vs Sundial+/DS2PL+/Motor/NoSWcc;TPC-C remote ratios、YCSB 95R/5W、最多 8 hosts(§4)。

  • TPC-C 60/90:vs Sundial+ 高 75%、vs DS2PL+ 2.5×、vs Motor 15.9–18.5×;0/0 时 Sundial+/DS2PL+ 比 Tigon 快 37%/8.5%(§4.2,Fig.4)。
  • 1→8 hosts:TPC-C 5.7×、YCSB 3.5×;Sundial+/DS2PL+ 分别为 2.4/2.1 与1.4/1.5×(§4.2,Fig.6)。
  • TPC-C HWcc=50MB 比 unlimited 慢 5.8%;10MB、60/90 每秒迁移 16K tuples、CXL bandwidth 367MB/s(§4.3,Fig.7)。
  • YCSB 100% multi-partition 中 NoSWcc 比 Tigon 慢 4.3×;TPC-C 60/90 慢 19%(§4.4,Fig.8)。

论断—证据表

论断证据指标 / 基线 / 评测边界定位置信度
多分区 TPC-C 可提升但非所有 workload75%、2.5×、15.9–18.5×;0/0反例specified remote ratios;vs Sundial+/DS2PL+/Motor§4.2,Fig.4high
扩展性仅测至 8 hostsTPC-C5.7×、YCSB3.5×TPC-C60/90、YCSB95R/5W 100% multi-partition§4.2,Fig.6high
HWcc 预算取决于 workload50MB -5.8%;10MB 16K tuples/367MB/sTPC-C;YCSB满性能需100MB§4.3,Fig.7high
SWcc 对高跨分区负载有贡献NoSWcc 4.3×/19% slowerYCSB/TPC-C specified configurations§4.4,Fig.8high
epoch 是吞吐/延迟取舍10ms vs50ms throughput -2.8%、p50 latency -48%no-multi-partition TPC-C;logging comparison§4.5,Table 1high

批判性分析

论证链条

CXL 低延迟共享内存 → CAT 小 → 原子同步替代 2PC → SWcc 扩展可用容量 → 吞吐大幅提升。链条在 benchmark 闭合;真实 OLTP skew 下 CAT 大小需监控。

假设压力测试

  • 热点跨分区事务使 CAT 增长,性能可能非线性下降。
  • NUMA 测试床代理 CXL 的调参结论迁移到 Niagara 2.0 等真硬件需再验证。
  • 索引重建恢复时间在大库上可能成为 RTO 风险。

实验可信度

强 baseline(CXL transport SN、RDMA DB);开源。缺长期 fault-injection 生产故事。

系统性缺陷

论文未讨论:CXL 设备故障域、多 pod 扩展、与 Disaggregation 存储层一致性。

局限与后续工作

  • 局限 1:scale 限于 pod;HWcc 容量硬限制。
  • 局限 2:CAT 膨胀时性能未保证。
  • Future work 1:无 HWcc 设备的纯 SWcc 路径优化。
  • Future work 2:自动 CAT 大小监控与降级到 2PC 的混合模式。

相关

  • 相关概念Disaggregation、Cache Coherence、Two-Phase Commit
  • 同类系统:Calvin、FaRM、HydraRPC、RDMA OLTP
  • 同会议OSDI-2025