社区讨论V2EX 程序员
分享一个用 Rust 写的分布式缓存/存储项目 Curvine,内存占用极低,顺便聊聊大家在 AI/大数据场景下的缓存选型
V 友们好, 最近在研究和参与 AI 训练加速以及大数据场景的存储优化,关注到了一个挺有意思的开源分布式缓存系统 Curvine ,试用和压测下来效果不错,分享给有类似需求的朋友们。 👉 项目地址 : https://github.com/CurvineIO/curvine 💡 它解决什么痛点? 大家在做 AI 训练(比如 Agent 频繁读写小文件、模型权重分发)或者大数据 Shuffle / 热表读取时,如果直接读写云上的对象存储( S3 / OSS / GCS ),通常会有两个痛点: API 费用高 + 延…
内容摘要
V 友们好,
最近在研究和参与 AI 训练加速以及大数据场景的存储优化,关注到了一个挺有意思的开源分布式缓存系统 Curvine ,试用和压测下来效果不错,分享给有类似需求的朋友们。
👉 项目地址 : https://github.com/CurvineIO/curvine
💡 它解决什么痛点?
大家在做 AI 训练(比如 Agent 频繁读写小文件、模型权重分发)或者大数据 Shuffle / 热表读取时,如果直接读写云上的对象存储( S3 / OSS / GCS ),通常会有两个痛点:
API 费用高 + 延迟大 (特别是频繁读写小文件)。
现有的缓存方案(比如 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 自动分级与热数据提升。
📊 性能跑分(从项目文档摘出来的关键数据)
元数据操作(并发 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
随机/顺序读写吞吐(对比 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 ),最看重哪些指标或者遇到过什么难受的坑?欢迎交流探讨!
资讯来源
V2EX