1、演讲嘉宾:David Fu OPPO大数据架构师 CurvineCurvine :高性能分布式缓存:高性能分布式缓存目录目录0 1CurvineCurvine是什么是什么0 2CurvineCurvine解决什么问题解决什么问题0 3CurvineCurvine架构设计架构设计0 4落地场景探索落地场景探索0 5性能表现性能表现0 6关于开源关于开源CurvatureCurvature EngineEngine曲率引擎曲率引擎让你想起了什么?让你想起了什么?是什么 分布式缓存,容量可扩展分布式缓存,容量可扩展 不是不是kvkv,不是存储,文件缓存,不是存储,文件缓存 基于基于RustRust:
2、更稳定更稳定更高效更高效解决什么问题 大规模数据大规模数据IOIO性能瓶颈性能瓶颈 单机缓存系统容量瓶颈单机缓存系统容量瓶颈日益增长的计算性能需求与日益增长的计算性能需求与分布式存储系统的分布式存储系统的IOIO瓶颈的瓶颈的矛盾矛盾落地场景大数据场景落地大数据场景落地 热表数据缓存热表数据缓存 高性能高性能 RSSRSS ServiceService 高性能临时数据网盘高性能临时数据网盘 落地场景 AIAI场景场景读数据缓存读数据缓存-训练数据训练数据-模型分发模型分发模型模型CheckpointCheckpoint落地场景 多云场景多云场景-跨云读数据问题跨云读数据问题-单云单云reques
3、trequest成本成本-单云对象存储带宽成本单云对象存储带宽成本落地场景-多生态结合 GravitinoGravitino +CurvineCurvine-AIAI 多模态数据元数据统一管理多模态数据元数据统一管理+-高性能缓存解决多模态数据高性能缓存解决多模态数据IOIO性能性能架构设计 RustRust语言优势语言优势-内存安全内存安全-nono stopstop thethe worldworld-高并发、异步化原生支持高并发、异步化原生支持 -零成本抽象零成本抽象 -开发效率不低于开发效率不低于JavaJava架构原则 简单:高效稳定简单:高效稳定-角色简单角色简单-高可用机制简单高
4、可用机制简单满足需求,解决问题,不过度设计满足需求,解决问题,不过度设计架构原则 极致:性能追求极致:性能追求-OrpcOrpc:数据传输高性能:数据传输高性能rpcrpc框架框架-FuseFuse:纯纯RustRust异步实现异步实现-元数据:吸收元数据:吸收hdfshdfs元数据优点元数据优点-客户端:客户端:locallocal 缓存加速缓存加速-数据加载:并发加载数据加载:并发加载架构原则 通用通用-多语言多语言SDKSDK客户端客户端-FuseFuse-CSICSI 云原生支持云原生支持性能表现 客户端读写表现客户端读写表现 -测试条件:测试条件:8 80c0c (Intel(Int
5、el Gold6230)Gold6230),384G384G memmem,24 24 hddhdd -读写读写1k1k*100Mb100Mb文件文件 -workerworker线程:线程:160160 clientclient 线程:线程:4040Curvine Rust 客客户端户端(G/s)Curvine Java 客户端客户端(G/s)写内存11.710.1读内存17.310.6写磁盘4.24.0读磁盘3.53.5Cpu 平均利用率2750%2209%Mem 平均用量0.32G0.54GJavaJava客户端性能无明显回退客户端性能无明显回退RustRust内存优势明显内存优势明显性能
6、表现 FIOFIO 测试测试-测试环境:测试环境:workerworker:AwsAws 机型机型 i3en.24xlargei3en.24xlarge clientclient:c5n.18xlargec5n.18xlarge 数据:数据:100G100G大文件大文件 fiofio 版本:版本:3.353.35顺序读顺序读随机读随机读线程数线程数Curvine(G/s)开源竞品开源竞品(G/s)12.20.688.94.5329.58.8线程数线程数Curvine(G/s)