问题域/PD-530

可插拔存储架构

Pluggable Storage Architecture

通过 Protocol 接口和 Factory 模式实现存储后端热切换,支持多租户作用域隔离

子问题

1.存储接口抽象(Protocol)

2.Factory 按配置实例化

3.动态类型组合实现作用域

4.向量索引与元数据存储分离

5.ORM 模型按作用域缓存避免重复构建

6.DDL 双模式(create/validate)适配开发与生产

7.共享 DatabaseState 缓存层统一后端数据访问接口

各项目的解法1 solutions

Signals

横向对比

维度memU
接口定义四个 @runtime_checkable Protocol(Database + 4 Repo),结构化子类型
后端数量三后端:InMemory / PostgreSQL+pgvector / SQLite
作用域机制merge_scope_model 运行时 type() 动态合并 Pydantic 模型,自动注入作用域字段
向量索引分离metadata_store 与 vector_index 独立配置,支持 bruteforce/pgvector 切换
懒导入策略非默认后端在 Factory elif 分支内 import,避免依赖污染
缓存层DatabaseState dataclass 统一内存缓存,所有后端共享 dict 接口
DDL管理双模式 create/validate + Alembic 增量迁移
ORM模型缓存_MODEL_CACHE 按 scope_model 类型缓存 SQLAlchemy 模型,避免重复构建

最佳实践

1.用 Protocol 而非 ABC 定义接口

2.懒导入非默认后端依赖

3.build_table_model 自动为作用域字段创建数据库索引

4.merge_scope_model 前置字段冲突检测防止运行时错误

5.model_post_init 自动推导向量索引配置减少用户配置负担