多租户数据隔离
Multi-Tenant Data Isolation
workspace+namespace双层隔离实现多租户数据分离,每个租户独立存储空间
子问题
1.命名空间设计
2.跨租户数据隔离
3.默认workspace兼容
4.初始化状态管理
5.多进程 worker 间的初始化竞争保护
6.namespace 级细粒度锁与 asyncio/mp 双模式切换
7.ContextVar 实现协程安全的可重入命名空间锁
各项目的解法1 solutions
Signals
横向对比
| 维度 | LightRAG |
|---|---|
| 隔离层级 | workspace(租户)+namespace(存储类型) 双层正交隔离 |
| 存储隔离方式 | 文件系统目录隔离,workspace 对应子目录 |
| 共享状态管理 | multiprocessing.Manager 跨进程共享字典 + init_flags 竞争保护 |
| 锁粒度 | namespace 级 KeyedUnifiedLock,asyncio/mp 双模式自动切换 |
| 向后兼容 | set_default_workspace 全局回退,旧 API 无需修改 |
最佳实践
1.workspace:namespace组合key
2.shared_storage统一管理跨进程状态
3.NameSpace 常量枚举防止拼写错误
4.try_initialize_namespace 原子标志防止多 worker 重复加载
5.KeyedUnifiedLock 按 sorted(keys) 顺序获取锁避免死锁