Prhub

#1735 [slime-router] support pd disaggregation and remove radix tree middleware

原始 PR 作者 zhuzilin 合并时间 2026-03-18 11:48 文件变更 12 提交数 1 评论 0 代码增减 +322 / -1078

执行摘要

支持 PD 分离并移除 radix tree 中间件,重构 slime 路由器以简化架构。

从文档更新(如docs/en/advanced/slime-router.md)可以看出,PD分离旨在优化rollout性能,通过将prefill和decode任务分发到不同类型worker来实现更高吞吐。移除radix tree中间件是因为该功能可能不再需要或被其他机制替代,以简化路由器的配置和维护。

该PR值得精读,特别是slime/router/router.py中的PD分离实现,展示了支持不同类型worker的路由设计决策,以及清理过时代码的架构优化思路。

讨论亮点

PR中没有review评论,表明变更可能经过内部讨论后直接合并,没有公开的争议或设计权衡。

实现拆解

实现方案按模块拆解:

1) slime/router/router.py中重构路由器核心,添加WorkerType枚举和WorkerInfo类支持PD分离,并移除中间件加载逻辑;
2) 删除slime/router/middleware_hub/目录下的radix_tree.py和radix_tree_middleware.py文件,彻底移除中间件实现;
3) 更新slime/rollout/sglang_rollout.py,移除对radix tree中间件的调用,简化rollout流程;
4) 修改参数定义(slime/utils/arguments.py),删除--slime-router-middleware-paths选项;
5) 同步更新中英文文档以反映新功能和移除的中间件。

文件 模块 状态 重要度
slime/router/router.py router modified 9.0
slime/router/middleware_hub/radix_tree.py middleware removed 7.0
slime/rollout/sglang_rollout.py rollout modified 6.0
slime/utils/arguments.py arguments modified 5.0

关键符号

run_router SlimeRouter WorkerType WorkerInfo _setup_routes

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

评论区精华

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

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

风险与影响

技术风险包括:

1) 移除radix tree中间件可能导致依赖此功能进行文本到令牌缓存的用户出现回归问题,影响token对齐;
2) PD分离引入新的路由逻辑(如slime/router/router.py中的WorkerInfo管理),增加系统复杂性,需测试负载均衡和错误处理;
3) 兼容性风险,用户需更新配置,移除中间件相关参数,可能引起配置错误。

影响范围:

1) 用户需调整配置,不再支持自定义中间件,简化了接口但可能限制灵活性;
2) 系统性能可能因PD分离而提升,但依赖于worker类型的正确注册和路由逻辑;
3) 代码库简化,减少了维护负担,但移除了过时功能需确保无依赖残留。

移除核心中间件 新路由逻辑复杂度 配置变更影响

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论