多后端存储抽象
Multi-Backend Storage Abstraction
统一存储接口抽象,支持多种后端(SQL/NoSQL/向量库/图数据库)插件化切换
子问题
1.存储接口标准化
2.后端注册与发现
3.环境变量校验
4.数据迁移兼容
5.槽位兼容性校验(防止 KV 实现误配到 Graph 槽位)
6.默认后端与非默认后端的加载性能差异处理
7.多租户 namespace×workspace 二维数据隔离
各项目的解法1 solutions
Signals
横向对比
| 维度 | LightRAG |
|---|---|
| 存储分层 | 四层 ABC:KV / Vector / Graph / DocStatus,职责严格分离 |
| 注册机制 | STORAGES 静态字典 + STORAGE_IMPLEMENTATIONS 兼容性矩阵双重校验 |
| 加载策略 | 默认后端直接 import + 非默认 lazy_external_import 双模式 |
| 环境校验 | STORAGE_ENV_REQUIREMENTS 前置 fail-fast,启动时即检查缺失变量 |
| 后端数量 | 18 个实现覆盖 JSON/Redis/PG/Mongo/Neo4j/Milvus/Qdrant/Faiss/Memgraph |
| 数据隔离 | namespace × workspace 二维隔离,同一后端可承载多租户多数据类型 |
| 渐进优化 | BaseGraphStorage 提供 5 个 batch 默认实现,子类可选择性覆盖 |
最佳实践
1.四层存储分离(KV/Vector/Graph/DocStatus)
2.lazy import减少启动依赖
3.默认后端直接 import + 非默认 lazy import 双模式平衡启动速度
4.batch 方法提供默认逐条实现,新后端可渐进优化
5.兼容性矩阵 + 环境变量需求表双重前置校验