vllm-project/vllm-ascend

[Contribution] 任务 #6:MooncakeConnector handshake 端口动态分配

Open

#10,653 opened on Jun 18, 2026

View on GitHub
 (2 comments) (0 reactions) (0 assignees)C++ (1,318 forks)github user discovery
help wanted

Repository metrics

Stars
 (2,180 stars)
PR merge metrics
 (Avg merge 4d 5h) (559 merged PRs in 30d)

Description

在提交新问题之前,请确保您已经在社区中搜索过相关问题,并使用了社区中提供的资源/工具后,仍未找到满意的解决方式。

📚 任务问题描述

任务描述

该任务拆分自 #9079,任务 ID:#6。

当前 mooncake_connector.py 中 handshake 端口通过 handshake_port = side_channel_port + device_index 固定推导,其中 device_index = pp_rank * tp_size + tp_rank + pcp_rank * prefill_tp_size。该方式依赖静态端口范围,容易在多实例、多节点复用、残留进程、端口被占用等场景发生冲突。本任务需要将 MooncakeConnector handshake 监听端口改为动态选择可用端口,并通过 metadata/side channel/握手机制确保 P 节点和 D 节点都能拿到正确的对端端口,避免端口冲突且不影响现有 KV cache 传输功能。

验收标准

  1. MooncakeConnector 不再依赖固定 side_channel_port + device_index 作为唯一 handshake 监听端口。
  2. 每个 rank 可动态选择本机可用端口,且同节点多 rank、多实例启动时不冲突。
  3. P 节点和 D 节点能通过 handshake metadata 或现有 side channel 正确交换并使用对端实际监听端口。
  4. PD 分离普通 Mooncake KV 传输功能不回退,prefill/decode 多 DP/TP 场景可正常建立连接并传输 KV cache。
  5. 端口申请、释放、异常清理逻辑可靠,进程异常退出后不会影响下次启动。
  6. 补充 UT/e2e 或最小复现用例,覆盖端口被占用、多 rank 动态分配、P/D 端口同步正确性。

对接人

@jyoung6652

认领状态

待认领

建议的替代/修复方案

请根据任务描述提交实现、测试或文档 PR,并在 PR 中关联本 issue 与 #9079;如实现过程中发现任务边界、使用指导或现有行为存在不合理之处,请同步补充说明和最小复现。

欢迎加入社区,感谢您对社区的贡献 🎉!

Contributor guide