OpenProgram · SessionStore concurrency

SessionStore 锁范围

SessionStore._lock 仅保护会话位置映射和 LRU 缓存结构。当前 _open、位置索引持久化和 delete_session 在该锁内执行目录扫描、原子写、fsync 或递归删除,使一个会话的慢 I/O 阻塞其他会话。

并发合同

资源要求
_locations_sessions 和 LRU 顺序_lock仅在读取、修改或复制这些内存结构时持有;不允许在锁内进行文件系统 I/O。
单个 session_id 的首次加载、重建、删除和缓存失效每会话 RLock同一会话串行,不同会话可并行。不创建通用 transaction 层。
locations.json 发布专用写锁在全局状态锁内更新并复制快照,释放状态锁后串行落盘,防止旧快照后写覆盖新快照。
SessionMemoryIndex 持久化现有 _persist_lockidx._lock保持现有锁序和 stale rebuild 语义;不在 idx._lock 内进行 I/O。
本任务只缩小 store 全局锁的 I/O 范围。不改 SessionStore 文件格式、LRU 容量、删除语义、跨进程 stale 检测或 Windows 行为。

验收