基于云对象存储的高性能存储服务器
╔═ lanbuffer ═══════════════════════════════╗
╔════════════╗ ║ ║
║ client(s) ║──API──▶ ║ ┏━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━┓ ║
║ ║ ║ ┃ Memory / ┃◀──▶ ┃ Lance ┃ ║
╚════════════╝ ║ ┃ NVMe Cache ┃ ┗━━━━━━━━━━━━━━┛ ║
║ ┗━━━━━━━━━━━━━━━┛ │ ║
║ ┌───────────▼───────┐ ║
║ │ Object Storage │ ║
║ │ (S3) │ ║
║ └───────────────────┘ ║
╚═══════════════════════════════════════════╝
什么是 LanBuffer?
LanBuffer 是一个受 turbopuffer 启发的、以对象存储为中心的高速检索引擎。
系统状态放在 S3 兼容对象存储上,计算侧使用内存 + NVMe 做热缓存,从而做到热数据很快、冷数据很省。
LanBuffer 基于 Lance 提供向量检索、全文检索与混合检索,并额外提供 FS 与 KV 接口便于集成。
query -> vector search + full-text search -> hybrid merge -> top-k docs
多种协议,一个内核
同一个内核同时提供多种接口:用于检索的 LanceDB 兼容 Table API,以及文件系统(NFS/9P/NBD)与 KV API。
按需选择接口,无需部署多套系统。
┌──────────────────────────────┐
HTTP :7001 ───▶│ Table API (vector / fts) │
HTTP :7002 ───▶│ KV API (CRUD / scan) │
NFS/9P/NBD ───▶│ FS API │
gRPC :7000 ───▶│ Admin (checkpoints, stats) │
└──────────────┬───────────────┘
▼
┌──────────┐
│ LanBuffer │
└────┬─────┘
▼
Cache (RAM + NVMe)
▼
Object Storage (S3)
内置加密、压缩和缓存
透明静态加密(XChaCha20-Poly1305 + Argon2id 派生密钥)。
透明压缩(LZ4 / Zstd)。
通过内存 + NVMe 热缓存加速热点数据与查询路径。
Write: client -> compress -> encrypt -> cache -> object store
Read : object store -> cache (hot) -> decrypt -> decompress -> client
\\-> cache (miss) ------------------------------^
时间点恢复与云原生
命名 checkpoint 支持快照与回滚到任意历史状态。
面向对象存储后端(S3/R2/GCS/Azure),计算节点无状态,容量可水平扩展。
time --------------------------------------------------------->
t0 write data
t1 checkpoint "before-upgrade" o
t2 write more data
t3 checkpoint "daily" o
restore("before-upgrade") -> state at t1