分享一个用 Rust 写的分布式缓存/存储项目 Curvine,内存占用极低,顺便聊聊大家在 AI/大数据场景下的缓存选型

shayne9527 2026-10-16 09:21 1

V 友们好,


最近在研究和参与 AI 训练加速以及大数据场景的存储优化,关注到了一个挺有意思的开源分布式缓存系统 Curvine,试用和压测下来效果不错,分享给有类似需求的朋友们。


👉 项目地址:https://github.com/CurvineIO/curvine


💡 它解决什么痛点?


大家在做 AI 训练(比如 Agent 频繁读写小文件、模型权重分发)或者大数据 Shuffle / 热表读取时,如果直接读写云上的对象存储( S3 / OSS / GCS ),通常会有两个痛点:



  1. API 费用高 + 延迟大(特别是频繁读写小文件)。

  2. 现有的缓存方案(比如 JVM 系的 Alluxio ,或者某些 Go 实现)在极高并发和小文件场景下,GC 开销和内存占用居高不下,元数据也容易遭遇瓶颈。


Curvine 是用 Rust + Tokio 重新写的一套分布式文件语义缓存层,主打的就是把性能和资源利用率做到极致。




🛠️ 觉得比较亮点的技术特性




  • Rust 无 GC & 内存极省:基于 Tokio 异步运行时,内存占用很低。官方压测和实际跑下来的数据,相比传统 JVM 方案内存消耗降了 90%+,CPU 也有明显降低。




  • 低延迟与高并发:保持 ~100μs 级的读写延迟,单集群支持 10 万+ QPS 和 50 亿级小文件。




  • 元数据结构透传(不破坏底层对象存储):这个设计很友好!不像某些方案会把文件打碎存进 S3 ,Curvine 的文件路径跟底层 S3/OSS 是一一对应的。哪怕缓存集群临时挂了,S3 上的文件依然保持原样,可以直接拉取,不担心数据被绑架。




  • 云原生 & 接入无感:




  • 支持 POSIX / FUSE / Kubernetes CSI 驱动。K8s 挂载 PVC 响应很快,不触发云厂商 Control-Plane API 。




  • 具备透明代理模式,业务代码基本不用动。




  • 多级缓存:内存 -> SSD -> HDD 自动分级与热数据提升。






📊 性能跑分(从项目文档摘出来的关键数据)



  1. 元数据操作(并发 40 ):



  • Open QPS:Curvine 60,376 vs JuiceFS 50,000 vs 原生 OSS 3,900

  • Rename QPS:Curvine 43,009 vs JuiceFS 21,000 vs 原生 OSS 200



  1. 随机/顺序读写吞吐(对比 Open Source Alluxio ,256K Random Read ):



  • 16 线程下,Curvine 达到 5.2 GiB/s,Alluxio 为 0.4 GiB/s ;高线程下基本上能吃满网卡带宽。




项目目前已经加入 CNCF Sandbox,采用 Apache 2.0 协议,完全开源。


感兴趣或者平时也有 S3/OSS 读写慢、AI 训练加载数据卡顿、K8s 共享文件挂载、大数据 Shuffle 性能瓶颈 困扰的朋友可以去看看或踩踩坑:



  • 源码与文档:https://github.com/CurvineIO/curvine


大家平时在做存储/缓存选型时(比如 Alluxio / JuiceFS / MinIO / Ceph ),最看重哪些指标或者遇到过什么难受的坑?欢迎交流探讨!

最新回复 (0)
    没有回复
* 帖子来源V2EX
返回