You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Codex CLI][v0.1.213] slow-ingest delta still exhibits a 10.3s synchronous storage spike (follow-up verification of #574 | [Codex CLI][v0.1.213] slow-ingest delta 仍出现 10.3 秒同步存储尖峰(#5744/#5756 后续实测) #6169
Activity
[-][Codex CLI][v0.1.213] slow-ingest delta 仍出现 10.3 秒同步存储尖峰(#5744/#5756 后续实测)[/-][+][Codex CLI][v0.1.213] slow-ingest delta still exhibits a 10.3s synchronous storage spike (follow-up verification of #574 | [Codex CLI][v0.1.213] slow-ingest delta 仍出现 10.3 秒同步存储尖峰(#5744/#5756 后续实测)[/+]ranxianglei commentedon Nov 11, 2026
[bot]
(ai: vllm-qwen/qwen3.8-27b)
查重:不重复 —— #6169 是该问题族唯一开放条目:#5744(O(history) ingest)与 #5756(delta 回退全历史扫描)均已关闭,PR #5755 已于 2026-11-07 合并;本单是它们的后续实测,按「同症状同线程」原则并入本线程处理,不另开新项。
标签:bug + codex + scope/storage + p2 —— 长会话下慢同步存储写入造成秒级事件循环卡顿,性能退化类,可用但问题明显。
版本核对(issue 建议 #1,已完成):tag v0.1.213 的发布提交晚于 #5755 的合并提交与 #5756 的修复提交,两者均为该 tag 祖先 ⇒ 发布包包含这两处修复,10.3s 尖峰是剩余瓶颈,不是旧根因回归。同时确认 master 上
src/storage/ingest.ts与 v0.1.213 逐字节一致(store.ts 仅多一个 #6029 的只读方法),master 上的静态分析结论对 v0.1.213 同样成立。剩余瓶颈静态分析(以下各条每次保存必然执行;无 CPU 采样,具体占比待打点确认):
plan 侧
finishPlan(src/storage/ingest.ts):.map内每块调用一次completeBlockContents(...)(ingest.ts:403),其内部每次都全量blocks.every(...)扫描(ingest.ts:519)——纯浪费,可提出循环且严格等价;store 侧
ingestSession事务(src/storage/store.ts):排除项:watermark/boundary 探针是点查询(store.ts:1605/1679/1694);你日志里
lastCheckpoint took=12ms busy=0,不是 checkpoint 突发;剩余耗时归因于上述 O(H) 同步工作 + Windows fsync/GC(每次保存数十 MB 临时垃圾),长会话下出现秒级尾部合理。另发现一个观测缺口:delta 回退原因目前是静默的 ——
ingestDelta的所有 return-false 点都没有命名,现有日志无法区分走了 full 路径是因为 watermark 缺失、boundary 不匹配、head 不匹配还是 store 拒绝。这正是打点要补的。方案(一个 PR,本线程):
completeBlockContents提出循环(O(B²)→O(B)),字节等价 + 回归测试钉住 completion 行为;进度说明:上一轮会话因环境卡死被强制重启(32 分钟无输出),期间未做任何代码改动(工作树干净);现在继续实现 A+B,完成后推 PR 并给结构化结论。