分布式缓存系统-Curvine
Curvine 是一个用 Rust 编写开发的高性能、并发分布式缓存系统,专为低延迟和高吞吐量工作负载设计。在高并发场景下表现优异,支持如下三类应用场景:高吞吐量数据读写、低延迟操作、大规模并发连接。采用Apache License 2.0开源协议授权。

系统要求为Rust v1.80以上、Linux 或 macOS (Windows 支持有限)、FUSE 库 (用于文件系统功能)。
核心特性
高性能 RPC 框架:基于 Tokio 的异步通信框架,支持高并发请求处理。
分布式架构:采用 Master-Worker 架构设计,支持水平扩展。
多级缓存:支持内存、SSD 和 HDD 的多级缓存策略。
FUSE 接口:提供 FUSE 文件系统接口,可无缝集成到现有系统中。
底层存储集成:支持与多种底层存储系统集成。
Raft 共识:采用 Raft 算法确保数据一致性与高可用性。
监控与指标:内置监控与性能指标收集功能。
Web 界面:提供 Web 管理界面,便于系统监控与管理。
架构设计
Curvine 采用模块化设计,主要由以下核心组件构成:
orpc: 一个支持异步 RPC 调用的高性能网络通信框架
curvine-common: 包含协议定义、错误处理和通用工具的共享库
curvine-server: 服务端组件,包含 Master 和 Worker 实现
curvine-client: 提供与服务器交互 API 的客户端库
curvine-fuse: FUSE 文件系统接口,支持将 Curvine 挂载为本地文件系统
curvine-libsdk: 支持多语言访问的 SDK 库
curvine-web: Web 管理界面和 API
curvine-tests: 测试框架与性能基准测试工具
应用场景

场景1: 训练加速
场景2: 模型分发
场景3: 热表数据加速
场景4: 大数据Shuffle加速
场景5: 多云数据缓存
需要以下依赖项,请确保在继续之前已安装(2025年9月):
先决条件
GCC: 10 或更高版本 (安装指南)
Rust: 1.86 或更高版本 (安装指南)
Protobuf: 3.x 版本
Maven: 3.8 或更高版本 (安装指南)
LLVM: 12 或更高版本 (安装指南)
FUSE: libfuse2 或 libfuse3 开发包
JDK: 1.8 或更高版本 (OpenJDK 或 Oracle JDK)
npm: 9 或更高版本 (Node.js 安装)
Python: 3.7 或更高版本 (安装指南)
Curvine 使用 TOML 格式的配置文件。示例配置位于 conf/curvine-cluster.toml,主要配置项包括:
网络设置(端口、地址等)
存储策略(缓存大小、存储类型)
集群配置(节点数量、副本因子)
性能调优参数
Curvine 采用主从架构:
主节点:负责元数据管理、工作节点协调和负载均衡
工作节点:负责数据存储和处理
客户端:通过 RPC 与主节点和工作节点通信
该系统使用 Raft 共识算法确保元数据一致性,并支持多种存储策略(内存、SSD、HDD)以优化性能和成本。
最新版本:
项目主页:https://github.com/CurvineIO/curvine
系统要求为Rust v1.80以上、Linux 或 macOS (Windows 支持有限)、FUSE 库 (用于文件系统功能)。
核心特性
高性能 RPC 框架:基于 Tokio 的异步通信框架,支持高并发请求处理。
分布式架构:采用 Master-Worker 架构设计,支持水平扩展。
多级缓存:支持内存、SSD 和 HDD 的多级缓存策略。
FUSE 接口:提供 FUSE 文件系统接口,可无缝集成到现有系统中。
底层存储集成:支持与多种底层存储系统集成。
Raft 共识:采用 Raft 算法确保数据一致性与高可用性。
监控与指标:内置监控与性能指标收集功能。
Web 界面:提供 Web 管理界面,便于系统监控与管理。
架构设计
Curvine 采用模块化设计,主要由以下核心组件构成:
orpc: 一个支持异步 RPC 调用的高性能网络通信框架
curvine-common: 包含协议定义、错误处理和通用工具的共享库
curvine-server: 服务端组件,包含 Master 和 Worker 实现
curvine-client: 提供与服务器交互 API 的客户端库
curvine-fuse: FUSE 文件系统接口,支持将 Curvine 挂载为本地文件系统
curvine-libsdk: 支持多语言访问的 SDK 库
curvine-web: Web 管理界面和 API
curvine-tests: 测试框架与性能基准测试工具
应用场景

场景1: 训练加速
场景2: 模型分发
场景3: 热表数据加速
场景4: 大数据Shuffle加速
场景5: 多云数据缓存
需要以下依赖项,请确保在继续之前已安装(2025年9月):
先决条件
GCC: 10 或更高版本 (安装指南)
Rust: 1.86 或更高版本 (安装指南)
Protobuf: 3.x 版本
Maven: 3.8 或更高版本 (安装指南)
LLVM: 12 或更高版本 (安装指南)
FUSE: libfuse2 或 libfuse3 开发包
JDK: 1.8 或更高版本 (OpenJDK 或 Oracle JDK)
npm: 9 或更高版本 (Node.js 安装)
Python: 3.7 或更高版本 (安装指南)
Curvine 使用 TOML 格式的配置文件。示例配置位于 conf/curvine-cluster.toml,主要配置项包括:
网络设置(端口、地址等)
存储策略(缓存大小、存储类型)
集群配置(节点数量、副本因子)
性能调优参数
Curvine 采用主从架构:
主节点:负责元数据管理、工作节点协调和负载均衡
工作节点:负责数据存储和处理
客户端:通过 RPC 与主节点和工作节点通信
该系统使用 Raft 共识算法确保元数据一致性,并支持多种存储策略(内存、SSD、HDD)以优化性能和成本。
最新版本:
项目主页:https://github.com/CurvineIO/curvine