2026-09-16
为 Router 新增优雅关闭排空配置面与启动校验、告警
值得精读,但**只推荐给关心 router 部署形态与滚动升级语义的人**(k8s / 平台 / Router owner);对模型、内核方向的工程师,读执行摘要即可,因为本 PR 没有任何运行期行为变化。精读时建议关注四个设计决策:① `shutdown_drain_advisory` 的 `>=` 边界与 `grace_declared` 字段(前者决定「drain 正好等于 grace」是否告警,后者决定同一告警是否能被日志聚合去重);② 把秒 → `Duration` 的转换从 `main.rs` 收进 `ServerConfig::shutdown_drain()` 的理由;③ 软 advisory 与硬 `MAX_SHUTDOWN_DRAIN_SECS` 的职责切分,以及它留下的「drain > grace 仍可启动」空隙是否可接受;④ `Default` impl(服务测试)与穷举 `into_config`(约束生产)并存这一对取舍。同时把 #39016 一起拉出来读,才能真正判断这套配置面是否够用。
为 DeepSeek-V4.1 补齐 Rust 侧图像预处理、KV 池名与 PD bootstrap 布局字段
值得精读,尤其适合关注多模态预处理实现和 PD 拆分启动期校验的工程师。
推荐关注的设计决策:
- `dsv41/mod.rs` 中"先做全量几何校验再计算"的防御式写法,以及用 256 项 bf16 LUT 替代逐像素浮点运算的性能取舍;`par::for_chunks_mut` 按 patch 分块并行是天然无数据竞争的分工方式,值得作为同类 preprocessing 的模板。
- `bootstrap.rs` 把一致性校验放进 `rcu` 闭包并让闭包在 mismatch 时"原样返回",从而既不增加 `registered_count` 也不污染 `prefill_ranks`——这是一个值得学习的"校验失败不留副作用"写法,但要注意并发重跑闭包的语义细节。
- `PoolName` 的双向字符串映射分布在 `unified_tree_core.rs` 与 `python_bindings.rs` 两个文件,属于容易漏改的隐式契约,建议后续补充一个穷举 round trip 的 Rust 单测来锁死。
如果需要跟进,重点看后续 Python 侧 PR 是否与 `dsv41_spec_layout`、`deepseek_v4_c1/c2` 池名以及 `resize_patchify` 的签名严格对齐。
路由器按 worker 解析并存储 h2c/HTTP1 转发协议,为 h2c 转发铺路
值得精读。重点关注三点:(1) per-worker 协议 vs fleet-wide 客户端的设计取舍,由 `manager_resolves_protocol_per_worker_no_fleet_lock` 锁定,防止回归;(2) `dials_cleartext` 的 URL 规范化坑——无 scheme 短名被 `url` 解析成 scheme,是极易被复制错的模式;(3) 测试对「默认值假阳性」的防御——`wait_for_protocol` 同时等待 `model_ids` 非空,避免实现从未读取协议也通过断言。作为 h2c 功能的地基 PR,注释密度极高,几乎每条都在解释一个决策边界,适合作为 Rust 服务端工程实践范本。
Rust 前端新增外部多模态处理器扩展点
值得精读,尤其是扩展点设计:`MmProcessor` trait 抽象、`ProcessorExtensions` 的不透明字段透传、`validate-before-park` 的防御式结果校验、以及 BF16 以 `u16` 位模式零拷贝过界的做法。关注点建议放在:外部处理器接入文档是否补齐、`multimodal_*` 字段行为变更的兼容性说明、以及 GPU 实测落地前的风险接受度。