• 请不要在回答技术问题时复制粘贴 AI 生成的内容
shayne9527
V2EX  ›  程序员

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

  •  
  •   shayne9527 · 1h 25m ago · 219 views

    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 ),最看重哪些指标或者遇到过什么难受的坑?欢迎交流探讨!

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5940 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:47 · PVG 10:47 · LAX 19:47 · JFK 22:47
    ♥ Do have faith in what you're doing.