Prhub

#27046 [HiCache] fix PD L3 cache hit details from decode responses

原始 PR 作者 huangtingwei9988 合并时间 2026-06-04 18:01 文件变更 1 提交数 3 评论 2 代码增减 +4 / -2

执行摘要

修复 PD 模式下 decode 响应中 L3 缓存命中报告的缺失问题

修复 PD 分离部署模式下 decode 响应遗漏 L3 缓存命中详情的问题。在 PD 模式下,L3 命中由 prefill 产生并通过元数据在 decode 阶段上报,而 decode 节点可能没有本地存储后端,原条件 self.enable_hicache_storage() 导致无法正确报告存储命中数值,影响缓存效果监控和调试。

建议快速合并。变更逻辑清晰、改动量小、风险低,且解决了一个实际观测到的监控数据缺失问题。

讨论亮点

无实质性讨论。Review 仅包含 Gemini Code Assist 的自动摘要,无人工评论;xiezhq-hermann 直接批准。

实现拆解

  1. 关键文件python/sglang/srt/managers/scheduler_components/output_streamer.py
  2. 方法调整:修改 get_cached_tokens_details 方法中关于存储命中详情的判断逻辑。
  3. 条件拆分
    • 存储命中数值(storage count)的条件从单一的 self.enable_hicache_storage() 扩大为 req.cached_tokens_storage > 0 or self.enable_hicache_storage(),确保即使 decode 节点无存储后端,只要存在 L3 命中数据就予以报告。
    • 存储后端类型(storage_backend)仍只在 enable_hicache_storage() 启用时才填充,避免无后端时返回错误信息。
文件 模块 状态 重要度
python/sglang/srt/managers/scheduler_components/output_streamer.py 调度器 modified 5.66

关键符号

get_cached_tokens_details

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

变更范围极小(+4/-2),仅调整一个条件语句,回归风险低。潜在风险是在 PD 模式下,如果 req.cached_tokens_storage 在非预期场景下被误设,可能多报零值存储命中,但已通过 > 0 检查避免。

影响范围仅限于启用 HiCache 且使用 PD 分离部署的模式。不会影响非 PD 模式或未启用 HiCache 的场景。修复后,decode 响应将正确反映 L3 缓存存储命中率,有助于缓存效率监控和问题定位。

缺失测试覆盖

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论