From 6cdea52f28cccc6f93773911d75f36bc06b291fb Mon Sep 17 00:00:00 2001 From: Gahow Wang Date: Tue, 12 May 2026 23:46:40 +0800 Subject: [PATCH] docs(audit): cross-branch audit + 3-milestone roadmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Consolidates the state of the five working branches (main / kvc-debug-journey-v1-to-v4 / feat/d-to-p-sync / h200-cu130 / kvc-real-ali-iter-v1) into a single collaborator-facing document. Sections: - §1 per-branch state - §2 contributions a reviewer cannot refute - §3 weaknesses (M1–M6 methodology, S1–S10 system, infra) ranked by how badly they hurt at OSDI/SOSP - §4 3-milestone roadmap (defensible submission → production substrate → OSDI'27 increments) - §5 GPU-free work queue (what subsequent commits in this branch deliver) No code change. Acts as the index target for the follow-up commits on this branch. --- docs/AUDIT_AND_ROADMAP_ZH.md | 140 +++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 docs/AUDIT_AND_ROADMAP_ZH.md diff --git a/docs/AUDIT_AND_ROADMAP_ZH.md b/docs/AUDIT_AND_ROADMAP_ZH.md new file mode 100644 index 0000000..b7d5af0 --- /dev/null +++ b/docs/AUDIT_AND_ROADMAP_ZH.md @@ -0,0 +1,140 @@ +# 项目整体审阅与下一阶段路线图 + +**日期**:2026-05-12 +**分支起点**:`improve/audit-and-foundations`(基于 `h200-cu130`) +**性质**:跨分支整合 + 路线图,供合作者判断每个 commit 是否值得 merge +**对象**:项目下一个 SWE / research agent + 论文 reviewer 预读 + +本文把 `main` / `kvc-debug-journey-v1-to-v4` / `feat/d-to-p-sync` / `h200-cu130` / `kvc-real-ali-iter-v1` 五个分支的进度、已成立的贡献、薄弱点、走到 SOSP/OSDI + 工业级的路线图集中到一处,方便快速对齐。 + +--- + +## 0. TL;DR + +1. **已经成立**:v1 → v2 算法(reset-on-success、字典序 Route、worker-mode Admit RPC)有形式化定义 + 两条 theorem + SWE-Bench 50 sess ts=1 上 6/8 指标击败 4DP CA 的实测。 +2. **核心薄弱点**:(a) session-level eviction 与 KVC 设计意图冲突;(b) D→P 增量 KV 同步不存在,TTFT p99 长尾来自此;(c) mooncake "instance not alive" 级联是控制层根本可用性问题;(d) 评测仍缺多 baseline 多 trace 强统计。 +3. **不需要 GPU 也能推进**的事:算法层 unit test、形式化设计文档(block-level evict、D→P sync 接口契约)、评测协议、分层分析工具、文档体系收口。本路线图的 Milestone 1 大部分都属于此类。 +4. **进 OSDI/SOSP 必须做的**:执行 §S1(block-level evict)+ §S2(D→P sync POC)+ §M2/M3/M4(多 baseline / 全 Ali / paired 协议)。预计 3–4 个月单/双人。 + +--- + +## 1. 五个分支的状态总览 + +| 分支 | 角色 | 当前状态 | 最关键产出 | +|---|---|---|---| +| `main` | "已发布" 基线 | 落后 origin 18 commit;2P4D + worker-admission + seed-min2 报出 vs default PD 的 9% mean / 19% p90 改善 | `KVCACHE_CENTRIC_PROGRESS_ZH.md` 的两档策略:latency-best vs stable | +| `kvc-debug-journey-v1-to-v4` | 主工作分支 | v1→v5 完整算法演化;`KVC_ROUTER_ALGORITHM.md` 三段算法 + 两条 theorem | SWE-Bench 50 sess ts=1:v2 6/8 指标击败 4DP CA;**TTFT p99 仍输 3×**(1.28s vs 0.43s),诊断为 8.3% reseed 慢路径 | +| `feat/d-to-p-sync` | 占位分支 | 代码空,仅 `RESEED_SLOW_PATH_AND_D_TO_P_GAP_ZH.md` | 已排除"capacity-backup 是 D→P sync"的误解;列出 4 项工程子任务 | +| `h200-cu130` | 真硬件 + RDMA 验证 | 4×H200 + mlx5_60 NDR 400 Gb/s 上跑 E1/E2/E3 | **E2 80% failure**(mooncake 死链级联);**E3 16min 触发 SGLang patch invariant crash**;最新 `KVC_EVICTION_GRANULARITY_DESIGN_ZH.md` 把 root cause 上升到"session-level 是错的 eviction granularity" | +| `kvc-real-ali-iter-v1` | 真 Ali trace 验证 | 8×H20,179-req KVC-fit slice + 600-req/15min cold-window | KVC vs DP:KVC-fit p50 −46% ✅;real 15min p90 +19s ❌,53 errors vs DP 1;KVC 默认 mem-fraction OOM,必须降到 0.82 | + +--- + +## 2. 已经"硬"成立的贡献 + +按"reviewer 能不能反驳"为标尺: + +1. **Reset-on-success 修复 v1 thrashing**:v1 永久 blacklist → migration 死循环 failure mode 有实测 + Algorithm 3 形式化 + Theorem 1 的不饿死证明(`KVC_ROUTER_ALGORITHM.md` §3.4 / §4.1)。 +2. **三段算法分工清晰**:Algorithm 1(字典序 Route)+ Algorithm 2(D 自治 Admit RPC)+ Algorithm 3(Dispatch + reset-on-success)。v5 把 admission 从 router 估算改成 D RPC(Option D)是把 capacity ground truth 与 routing score 解耦的正确分层。 +3. **Direct-to-D 快路径的确定性命中**(Theorem 2):只要 residency ⊇ prefix ∧ append ≤ τ_append ∧ cap_ok 三条件同时成立必走快路径;SWE-Bench 91.6% 命中、TTFT p50 = 0.43s 是结构性结果。 +4. **每一个 negative result 都有 forensic 级解释**:mooncake death、cold-D、reseed 慢路径、session-level evict 都有代码定位 + 时间线 + 反例。这条对 paper 是真正加分项。 + +--- + +## 3. 让 reviewer 一击致命的薄弱点 + +### 3.1 评测方法层 + +- **M1 N 不足**:SWE-Bench v2 baseline N=3 确认 categorical,v2 自身 N 不足;缺 bootstrap CI。 +- **M2 比较口径不对等**:E2 80% 失败时用 "successful only" 算 latency 与 E1 全集比;paper 必须 paired-on-same-trial。 +- **M3 trace 偏 KVC-friendly**:KVC-fit slice 按 small-append + high overlap 筛过;full Ali(turn2+ ratio 26%、single-turn 极多)的 dilution 后结果没跑过。 +- **M4 baseline 不够强**:缺 vLLM + prefix-cache、DistServe、SplitWise、Mooncake-Master 任何一个。 +- **M5 trace 单一性**:缺 ShareGPT/Mooncake trace、缺 long-context tool-use agent benchmark、缺合成 adversarial trace。 +- **M6 硬件覆盖**:只 single-node ≤ 8 GPU;没有跨节点、没有 ≥ 32 GPU 集群实测。 + +### 3.2 系统设计层 + +- **S1 Session-level eviction 与 KVC 设计意图冲突**:90 次 evict、平均一次 free 67K tokens、25/50 session 必须 50–90K 重 prefill。`KVC_EVICTION_GRANULARITY_DESIGN_ZH.md` 已识别但未实现修复。 +- **S2 D→P 增量同步不存在**:TTFT p99 长尾 50% 来自 P 重 prefill。`capacity-backup` 是 seed-time 静态快照,不是 D→P sync。修复需改 SGLang radix 的单生产者假设。 +- **S3 Mooncake 级联 death**:admission no-space → 持续重试 seed → 心跳掉线 → SGLang 整批 abort(E2 1054/1285 失败)。控制层根本可用性 bug。 +- **S4 Admission RPC 同步阻塞**:缺 backoff / hedging / staleness budget。D scheduler GIL 抖动即把 router 卡死。 +- **S5 Cold-D / overlap-pinning**:boilerplate 24-token block hash 让所有 session 与 D0/D1 重叠 → D2/D3 0 binding。load-floor bonus 是补丁,不是 first-principles 修复。 +- **S6 SGLang 本地 patch 已 785 行 / 10 文件**,含 `schedule_batch.py:1646` 这种 hot-path 不变量改动;E3 crash 就是 vendored patch 引入的 latent landmine。 +- **S7 失败恢复 / 幂等性**:streaming session 在 chunked-prefill retry 下幂等性靠 `SessionSlot.restore_to_req`;缺 worker crash / mooncake 重连 / partial KV 损坏的恢复 protocol。 +- **S8 没有 multi-tenant / SLO-aware scheduling**:算法目标隐式 w_ttft=w_lat=1。生产里 interactive / batch / background 必须分级。 +- **S9 Topology fixed at boot**:P/D 比例是启动参数。生产负载需要 elastic。 +- **S10 Backpressure pause hint 信号未闭环**:触发 20 次但因 no-BP 无人响应;control-plane 没接通。 + +### 3.3 工程基础设施层 + +- **可观测性**:metrics 是 jsonl + 离线 `recompute_summary.py`;生产需要 Prometheus + Grafana + OpenTelemetry trace。 +- **形式化测试**:算法层与状态层缺 unit test;`SessionSlot.restore_to_req` 幂等性是作者自己 flag 的 invariant。 +- **混沌注入**:mooncake death 这种 control-plane failure 必须有 fault injection harness。 +- **代码体量**:`replay.py` 2460 行,集 orchestration / policy hook / control plane / metrics 于一身——prototype OK,paper-quality artifact 偏弱。 + +--- + +## 4. 路线图 + +分三个 milestone。每个 milestone 可独立交付(paper 章节或工程 release)。 + +### Milestone 1 — Defensible SOSP/OSDI submission(3–4 个月,单 / 双人) + +**目标**:把现有算法 + 失败诊断收口成能扛 PC 第一轮的稿子。 + +1. **执行 §S1(block-level eviction refactor)** — 见 `docs/BLOCK_LEVEL_EVICTION_DESIGN_ZH.md`。 + - Streaming-session decode 输出在每个 turn finish 时通过 `cache_finished_req` 增量提交进 radix tree。 + - `SessionSlot` 退化为纯 metadata(仅持 `last_node` + lock_ref)。 + - `release_session` 改为 `dec_lock_ref` + 删 slot;evict 完全交给 SGLang radix LRU。 + - 预期:evict 粒度从 67K tokens/次降到 24 tokens/次;reseed 频率降一个数量级。 +2. **执行 §S2(D→P 增量同步 POC)** — 见 `docs/D_TO_P_SYNC_CONTRACT_ZH.md`。 + - microbench 证明:D append 完成后异步推 KV block 回 P 端 radix → 下次 reseed 跳过 re-prefill。 +3. **修 §S3(mooncake death 级联)**:admission RPC backoff + jitter;per-D pending-seed budget;mooncake heartbeat 与 admission 解耦。 +4. **修 §S5 的 first-principles 解法**:把 `overlap` 重定义为 "session 在 D 上独占 prefix 的 hash 数"(去掉 boilerplate 共享 hash 贡献),让 score 自然分散。 +5. **重做评测**:见 `docs/EVALUATION_PROTOCOL_ZH.md`。N≥3 + bootstrap CI + 多 baseline + 全 Ali + 分层报告。 +6. **形式化扩充**:加 Theorem 3(block-level evict 下重 prefill cost 上界)+ Theorem 4(D→P sync 的 staleness budget β 与 reseed cost 关系)。 +7. **Artifact**:一键脚本 + Dockerfile + 4×A100 一小时复现核心 table/figure。 + +### Milestone 2 — Production-quality serving substrate(再 3–6 个月,2–3 人) + +8. **控制平面分层**:把 `replay.py` 拆成 `router/` / `control/` / `obs/` / `orch/`。 +9. **Elastic topology**:autoscaling controller,输入 (P queue, D transfer queue, D KV usage)。 +10. **Multi-tenant + SLO classes**:interactive / batch / background 三档独立 admission budget。 +11. **Failure injection harness**:mooncake link flap / D OOM kill / router GC pause / partial KV corruption;每个 case 有恢复 SLA。 +12. **Persistent KV tier**:CPU DRAM + NVMe + RDMA-attached pool;evict 改为 demote。 +13. **Cross-node + heterogeneous**:H100 + H200 + L40S 混合,topology-aware routing。 +14. **Observability**:per-request OpenTelemetry + Prometheus per-D + Grafana 主面板。 + +### Milestone 3 — 真正能进 OSDI'27 的科研增量(6–12 个月) + +15. **Learning-based admission / migration**:multi-armed bandit / RL 控制 τ_reject 与 K;用 trace 训 session-aliveness predictor。 +16. **跨 router residency consensus**:轻量 gossip 共享 `Σ.resident[d]`。 +17. **可证明 competitive ratio**:在 oracle KV-residency 模型下证明 KVC expected TTFT 与 offline optimal 比值有界。 +18. **分布式 prefix tree**:逻辑 prefix 映射到多 D 物理副本,支持 multi-tenant prefix 共享(system prompt / tool schema)。 +19. **Energy-aware variant**:GPU SM 利用率 + PCIe/RDMA 能耗进目标函数。 +20. **End-to-end agent serving framing**:从 request-level latency 上升到 agent task completion time(coding agent 一个 task 30+ turn)。 + +--- + +## 5. 不需要 GPU 也能推进的工作清单 + +按 ROI 排: + +- [x] 本路线图(`AUDIT_AND_ROADMAP_ZH.md`)。 +- [x] 合作者入口(`docs/INDEX_ZH.md`)。 +- [x] Block-level eviction 具体设计(`docs/BLOCK_LEVEL_EVICTION_DESIGN_ZH.md`)。 +- [x] D→P sync 接口契约(`docs/D_TO_P_SYNC_CONTRACT_ZH.md`)。 +- [x] 评测协议(`docs/EVALUATION_PROTOCOL_ZH.md`)。 +- [x] `KvAwarePolicy` 纯函数 score 抽取 + unit test(Algorithm 1)。 +- [x] 不饿死性质测试(Theorem 1)。 +- [x] 分层分析脚本(按 turn-index / append-size / overlap 三维分桶)。 +- [x] Paired-comparison 协议 helper。 +- [ ] Mooncake death 的可重现 mock harness(无 GPU 也能跑)。 +- [ ] SGLang patch surface 的归类清单(每个 patch 标"必须" / "实验性" / "可下线")。 +- [ ] Failure-mode taxonomy 文档(cold-D、overlap-pin、mooncake death、reseed storm、evict storm)。 + +--- + +## 6. 单句结论 + +> 这个项目已经具备了 SOSP/OSDI workshop / poster 的素材;要进 main track,需要把 §S1(block-level evict)和 §S2(D→P sync)做实、把 §M3(full Ali)和 §M4(两个强 baseline)补齐、把 §S3(mooncake 级联 death)的 control-plane fix 写进可重复 artifact。如果只能做一件事,先做 block-level eviction refactor —— 它同时解决"reseed 太频繁"和"P 端 radix 多生产者扩展的前置条件"。