Scalio: Scaling up DPU-based JBOF Key-value Store with NVMe-oF Target Offload (OSDI 2025)
一句话总结:DPU JBOF 上 LEED 在 4 块 SSD 后吞吐饱和、网络 IOPS 利用率 <1%,Scalio 用 NVMe-oF Target Offload + 客户端单边 RDMA 热读缓存 + group commit 写缓冲,配合 occupied/complete 一致性协议保证 linearizability,7 SSD 配置下比 LEED 高 2.5–17×、比 LEED+Ditto 高 1.8–3.3×。
问题与动机
高密度 DPU-based JBOF(单 DPU 挂多块 NVMe)是能效友好的存储形态,但现有 JBOF KV(如 LEED)在 small KV workload 下随 SSD 数量增加无法线性扩展:LEED 在 4 SSD 时 DPU CPU 已饱和(SSD I/O 核占用 ~400%),吞吐不再增长,而 Mellanox ConnectX-6 网络 IOPS 能力 200M、实测仅 ~600K(<1% 利用率)。瓶颈在弱 ARM 核处理 SSD I/O,而非 SSD 或网络本身。
关键观察 / 隐含假设
- 观察 1:NVMe-oF Target Offload 可把 target 端 SSD 读路径 CPU 占用降到 0,且 IOPS 与标准 NVMe-oF 相当。
- 依赖假设:部署环境有支持 Target Offload 的 HCA(如 ConnectX-6 类),且客户端能发 NVMe-oF 命令直达 SSD。
- 可能失效场景:无 offload 硬件时回退标准路径,CPU 瓶颈依旧;非 small-KV workload 下网络带宽可能先饱和。
- 观察 2:小 KV 场景下 RDMA read/write IOPS 远高于 CAS(约 10×),应把索引维护尽量卸载到客户端单边操作,少用 CAS。
- 依赖假设:workload 以 100B 级小 KV 为主(YCSB 类),hash block 可放大到 ~1KB 仍不压满网络。
- 可能失效场景:大 value 或极高写比例时,DPU CPU 的 group commit 与 ring buffer 仍可能成为瓶颈。
- 假设 1:disaggregated 架构下 DPU DRAM 与 SSD 无硬件 cache coherence,必须显式协议而非依赖 CPU 式一致性。
- 证据强度:强——论文用 linearizability 反例(write-cache-first / write-SSD-first)证明 naive 协议不成立。
核心方法
读路径:客户端 RDMA read hash block(~1KB,多 slot 内联 KV);hit 则直接返回;miss 则 NVMe-oF Target Offload 直读 SSD,再 RDMA write 回填 victim slot,用 occupied/complete + double-read 锁定。
写路径:客户端 RDMA append 到 DPU ring buffer;DPU CPU 批量刷 SSD 并更新 next_offset,group commit 后通知客户端;客户端 RDMA 失效过时 cache entry。
一致性:RDMA 驱动的缓存一致性协议,在 disaggregated 多客户端场景保证 linearizability,刻意限制重 CAS 使用。
设计取舍
- 取舍 1:把读索引与部分 cache 维护卸载到客户端,换取 DPU CPU 可扩展性,但增加客户端复杂度与一致性协议负担。
- 取舍 2:写路径仍依赖 DPU CPU polling + batch flush,写密集时 CPU 仍可能是次瓶颈。
- 边界条件:7 SSD 以内 YCSB A/B/C/D/F 表现稳健;更高密度、非均匀 key 分布与故障恢复路径论文覆盖有限。
实验与结果
- YCSB,1–7 SSD:相对 LEED 2.5–17× 吞吐;相对 LEED + Ditto 内存缓存 1.8–3.3×。
- NVMe-oF Target Offload:target CPU 0% vs 标准实现 562%(fio 微基准)。
- LEED 网络 I/O 利用率 <1%;Scalio 更好利用 HCA IOPS 余量。
- 参数敏感性(block size 等)在 §6.5 中表现稳健。
Critical Analysis
论证链条
观察(CPU 瓶颈 + 网络闲置 + offload 零 CPU)→ 卸载读与 SSD 直达 → YCSB 吞吐随 SSD 数扩展,链条在 small KV + JBOF 设定下闭合。linearizability 论证依赖 occupied/complete 协议,实验以功能/性能为主,形式化验证范围论文未展开。
假设压力测试
大 value、扫描型读、多租户强隔离场景下客户端参与一致性是否仍可维护?Target Offload 与多种 SSD/HCA 组合的兼容性论文主要在单一 testbed。生产级故障恢复(DPU 崩溃 mid-batch)依赖 group commit 到 SSD 的持久化边界,需对照实现细节。
实验可信度
Baseline LEED 与 LEED+Ditto 合理;YCSB 代表 cloud small-op 但非全场景。7 SSD 上限可能低于商用 26/36 SSD JBOF 机箱,外推需谨慎。
系统性缺陷
客户端需实现 NVMe-oF + RDMA 一致性逻辑,运维与升级复杂;论文未讨论 tail latency SLO、多租户公平性、可观测性指标。
局限与 Future Work
- 局限 1:写密集 workload 下 DPU CPU 与 group commit 延迟仍可能限制扩展。
- 局限 2:实验规模与硬件代际固定,超高密度 JBOF 未充分验证。
- Future work 1:在 20+ SSD 商用 JBOF 上测量 CPU/网络/SSD 三瓶颈转移点。
- Future work 2:故障注入下 linearizability 与恢复时间的系统化测试。