跳到正文
V2EX·· 5 小时前AI 评分47

Curvine:Rust 编写的开源分布式缓存系统,面向 AI 与大数据场景

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

AI 导读

Curvine 是一款基于 Rust 和 Tokio 的开源分布式文件语义缓存层,面向 AI 训练及大数据读写场景,支持 POSIX、FUSE、Kubernetes CSI 和透明代理。项目称其内存消耗较传统 JVM 方案降低 90% 以上,读写延迟约 100μs,单集群支持 10 万以上 QPS;采用 Apache 2.0 协议,已加入 CNCF Sandbox。

正文

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 性能瓶颈 困扰的朋友可以去看看或踩踩坑:

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

来源:V2EX · v2ex.com