Curvine 是一个用 Rust 编写的高性能、并发分布式缓存系统,专为低延迟和高吞吐量工作负载设计。
️ 架构设计
Curvine 采用主从架构:
- 主节点:负责元数据管理、工作节点协调和负载均衡
- 工作节点:负责数据存储和处理
- 客户端:通过 RPC 与主节点和工作节点通信
该系统使用 Raft 共识算法确保元数据一致性,并支持多种存储策略(内存、SSD、HDD)以优化性能和成本。
应用场景
- 场景1: 数据洗牌加速
- 场景2: 热表数据加速
- 场景3: 训练加速
- 场景4: 模型分发
- 场景5: 多云数据缓存
性能表现
Curvine 在高并发场景下表现优异,支持:
- 高吞吐量数据读写
- 低延迟操作
- 大规模并发连接
核心特性
- 高性能 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: 测试框架与性能基准测试工具
系统要求
- Rust 1.80+
- Linux 或 macOS (Windows 支持有限)
- FUSE 库 (用于文件系统功能)
️ 缓存文件系统访问
Rust API (原生集成推荐)
use curvine_common::conf::ClusterConf; |