42 lines
1.7 KiB
Markdown
42 lines
1.7 KiB
Markdown
---
|
||
title: "Curvine 云原生分布式缓存"
|
||
created: 2026-04-19
|
||
updated: 2026-04-19
|
||
type: concept
|
||
tags: [system-design, performance, tooling]
|
||
sources: [raw/articles/oppo-multimodal-data-lake-2026.md]
|
||
---
|
||
|
||
# Curvine 云原生分布式缓存
|
||
|
||
**开发者:** OPPO (已开源) · GitHub: https://github.com/curvineio/curvine
|
||
|
||
## 定义
|
||
Curvine 是 OPPO 自研并开源的云原生高性能分布式缓存文件系统,专为解决云上对象存储 IO 性能瓶颈而设计。
|
||
|
||
## 解决的问题
|
||
1. **OSS 带宽配额瓶颈**:云厂商默认读带宽限制在大数据场景下易成瓶颈
|
||
2. **专线带宽压力**:混合云架构下,重复读取易打爆专线,影响其他业务
|
||
3. **计算节点磁盘闲置**:节点配置的云盘(如 2.5TB)主要用于 Shuffle,利用率常低于 20%
|
||
|
||
## 核心特性
|
||
- **双模式支持**:
|
||
- 缓存模式:读写与 OSS 保持一致
|
||
- FS 模式:Curvine 管理元数据,支持完整 POSIX 语义,对象存储数据可作本地盘访问
|
||
- **协议兼容**:支持 S3、HDFS 协议,原生支持 Kubernetes CSI 模式
|
||
- **任务调度**:常驻服务,处理数据加载和大文件操作
|
||
|
||
## 应用场景与性能
|
||
- **LanceDB 向量查询加速**:社区版 LanceDB + Curvine 性能 ≈ LanceDB 商业版
|
||
- **索引与元数据缓存**:支持预热模式,高性能访问 LanceDB 索引和 Manifest
|
||
- **热表数据加速**:重复读取数据从 OSS 加载至本地缓存盘
|
||
- **Checkpoint 写入加速**:高频模型训练写入提供高性能支持
|
||
|
||
## 未来规划
|
||
- 扩展为数据转换服务层:自动转 Lance 格式、自动构建索引、小文件自动合并
|
||
|
||
## 相关概念
|
||
|
||
- [[oppo-multimodal-data-lake]] — OPPO 数据湖实践
|
||
- [[gravitino-unified-metadata]] — 元数据管理配套
|