图_6数据存储与状态
原生 Excalidraw 可编辑画布,基于 SuperMew-0.1.0。请使用 Obsidian 的 Excalidraw 视图打开。
视图归属: M8 模块主图。
数据责任
- PG 是用户、会话、消息和父块的持久存储;Milvus 保存 L3。
- 原文在本地;Redis 仅缓存历史、列表和父块。
状态生命周期
- metadata 里的笔记和 pending_hitl 跨轮保存。
- ctx 与 RAGState 每请求/每次图调用新建。
- JobManager 是进程内状态;浏览器视图不是服务端持久状态。
一致性
- 会话先 PG commit 再更新缓存;父块会先写缓存再 commit。
- 没有跨 PG、Redis、Milvus 的统一事务。
源码对应
backend/db/models.pybackend/infra/cache.py:RedisCache()backend/chat/storage.py:load_with_meta()backend/indexing/parent_chunk_store.py:ParentChunkStore()backend/chat/request_context.py:ChatRequestContext()backend/jobs/upload_jobs.py:UploadJobManager()backend/api/resources.py
下级专题
- [[图_7数据库ER关系|PostgreSQL 实体、属性与关系]]
Excalidraw Data
Text Elements
业务持久化 ^d6cba261
PostgreSQL · [[图_7数据库ER关系|ER:图7]]
对话数据 知识库数据 ^aba2ffd4
Milvus
文档分块策略:分三级,只存最小的一级 检索策略:混合检索 存储字段设计 ^c79ee370
Redis · JSON 缓存 ^fad8a091
当前对话的历史消息 当前用户的历史session摘要 父块 ^c51ca892
Element Links
d22075d0: [[图_7数据库ER关系]]
aba2ffd4: [[图_7数据库ER关系]]
%%
Drawing
1 | N4KAkARALgngDgUwgLgAQQQDwMYEMA2AlgCYBOuA7hADTgQBuCpAzoQPYB2KqATLZMzYBXUtiRoIACyhQ4zZAHoFAc0JRJQgEYA6bGwC2CgF7N6hbEcK4OCtptbErHALRY8RMpWdx8Q1TdIEfARcZgRmBShcZQUebR4ATm0ARho6IIR9BA4oZm4AbXAwUDBSiBJuCASEgFYAMwSAZgAOYjTSyFhESsDsKI5lYPayzG5GgHYABm1G2cbkxObmnmaF |
%%