跳到主要内容

3 篇博文 含有标签「teams」

teams activities of curvine

查看所有标签

高性能分布式缓存Curvine,低调开源

· 阅读需 6 分钟
Founder of Curvine

Curvine是什么

 Curvine是一套分布式缓存系统,基于Rust实现,具备 高并发,高吞吐,低延迟,资源消耗低等特点。不同于Redis、TiKV等KV缓存,Curvine只提供文件缓存能力。Curvine不是存储系统,只提供缓存能力,数据持久化还是需要底层文件或者对象存储系统支撑。

解决什么问题

  1. 大规模数据IO性能瓶颈
  2. 单机缓存系统容量瓶颈

实际应用中,有哪些场景适用Curvine加速?

Curvine Application Scenarios.

Fig. 1:Curvine Application Scenarios.

如上图所示,Curvine适用于以下五大场景:

  1. 大数据shuffle 中间数据加速
  2. 大数据热表数据缓存加速
  3. AI训练数据缓存加速
  4. 模型文件分发缓存加速
  5. 多云数据缓存,解决跨云专线性能瓶颈

以上场景总结,只是抛砖引玉,通俗的理解,Curvine其实就是解决: 日益增长的计算性能需求与分布式存储系统的IO能力瓶颈的矛盾。

性能表现

我们从以下几个方面展示性能和资源使用情况:

1. 元数据操作性能

Operation TypeCurvine (QPS)Juicefs (QPS)oss (QPS)
create19,98516,0002,000
open60,37650,0003,900
rename43,00921,000200
delete39,01341,0001,900

: 对比数据选取的并发度均为40

详细结果https://curvineio.github.io/docs/Benchmark/meta/

业界类似产品测试数据https://juicefs.com/zh-cn/blog/engineering/meta-perf-hdfs-oss-jfs

2. 数据读写性能

相同硬件条件下,测试对比Alluxio性能:

● 256k顺序读

Thread countCurvine Open Source Edition (GiB/s)Throughput of Open Source Alluxio (GiB/s)
12.20.6
23.71.1
46.82.3
88.94.5
169.27.9
329.58.8
649.2N/A
1289.2N/A

● 256k随机读

Thread countCurvine Open Source Edition (GiB/s)Throughput of Open Source Alluxio (GiB/s)
10.30.0
20.70.1
41.40.1
82.80.2
165.20.4
327.80.3
648.7N/A
1289.0N/A

  Alluxio官网数据披露:https://www.alluxio.com.cn/alluxio-enterprise-vs-open-source/

3. 资源消耗情况

  得益于Rust语言的特性,我们在大数据shuffle加速场景下,对比线上使用Curvine和Alluxio资源消耗情况,内存降低90%+,cpu降低50%+。

架构简介

 Curvine架构设计理念:简单、极致、通用。

Curvine Architecture Diagram.

Fig. 2:Curvine Application Scenarios.

简单:简单轻量,缓存服务只有两个角色:master、worker。非性能瓶颈的模块,尽量复用开源或者已有的技术,代码最大可能轻量化。

极致:对性能影响较大的关键节点:底层rpc通信架构、Fuse 实现性能等关键组件,自主设计实现,以极致性能优化思维构建。

通用::兼容多种现有接入模式,底层存储兼容主流分布式文件和对象存储做到足够通用,易用。

关于开源

 我们在内部大数据高并发高吞吐场景下使用Curvine加速数据IO,取得比较大的收益。希望吸引外部的伙伴共同建设,一起加速基础设施向Rust转变。  https://github.com/curvineio/curvine

  由OPPO大数据提供支持。