基于云对象存储的高性能存储服务器

                        ╔═ 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