Skip to content

docs(pd): cover vLLM HTTP disaggregation, KV-protocol pairing, and EPD - #46

Merged
slin1237 merged 3 commits into
mainfrom
docs/pd-disaggregation-v1.11
Sep 24, 2026
Merged

slin1237 merged 3 commits into
mainfrom
docs/pd-disaggregation-v1.11

Conversation

@slin1237

Copy link
Copy Markdown
Member

PD disaggregation changed a lot in v1.10 and v1.11, and the docs still described the pre-1.10 behavior:

  • vLLM PD now works over plain HTTP. The gateway dispatches sequentially and relays kv_transfer_params (feat(pd): sequential vLLM disaggregation with kv_transfer_params relay over HTTP smg#2255, with MultiConnector resolution in #2425).
  • Anthropic Messages, Responses, and count_tokens route through PD (#2250, #2638).
  • Prefill and decode are paired by KV-transfer protocol, controlled by --pd-pairing-mode (#2484, #2486, #2504).
  • n>1 fans out into one pair per sample (#2482).
  • A failed leg fails fast (#2466), and every router uses the same 503 for an unavailable leg (#2479).
  • Kubernetes PD KV metadata comes from pod annotations (#2358, #2359).

The old pages also showed wrong SGLang flags, invented pairing strategies and sizing tables, and no EPD at all.

Changes

  • concepts/routing/pd-disaggregation.md (rewritten)
    • A supported-engines table covering SGLang, vLLM, and TokenSpeed; TRT-LLM/MLX (400 runtime_pd_not_supported); and ZMQ (rejected).
    • Parallel vs sequential dispatch: bootstrap fields, the 8998 default, NIXL/Mooncake/passthrough connector modes and recompute fallbacks, and where the connector comes from over gRPC vs HTTP.
    • Failures, cancellation, and streaming: fail-fast, deferred decode abort, and early stream commit with prefill drain.
    • n>1 fan-out.
    • A multimodal note with the three pd_decode_language_model_only_* codes.
    • A supported-API matrix.
    • A new Pairing section: what is compared, off/lenient/strict, pairing_protocol / SMG_PAIRING_PROTOCOL, and 503 no_compatible_pd_pair.
    • Admission and errors: the gRPC decode window, context length, and an error-code table.
    • A new EPD section.
    • Monitoring rebuilt on the real smg_pd_* series.
  • getting-started/pd-disaggregation.md (rewritten)
    • A setup chooser.
    • SGLang HTTP and gRPC tabs with correct flags.
    • vLLM over gRPC with NIXL and Mooncake.
    • A new vLLM-over-HTTP walkthrough that registers kv_connector through POST /workers.
    • TokenSpeed PD and EPD, Kubernetes, and pairing and readiness checks.
  • getting-started/index.md, PD Disaggregation Workers
    • Uses smg launch (the pip CLI requires a subcommand).
    • Adds a vLLM PD (HTTP + NIXL) tab.
    • Moves the SGLang gRPC decode worker to port 50061, because SGLang's gRPC mode opens an HTTP sidecar on --port + 1, which collided with a decode worker on 50052.
  • Both service-discovery pages, PD sections only: a pod-annotation table (sglang.ai/bootstrap-port, smg.ai/kv-connector, smg.ai/kv-engine-id), a vLLM Mooncake pod example, and notes on role precedence and readiness.
  • concepts/architecture/overview.md, PD Mode: one accurate paragraph replaces a stale four-step list.

Verification

This is one of a series of docs PRs that bring the site up to smg v1.11.0, one per area.

🤖 Generated with Claude Code

Document sequential vLLM PD over HTTP with kv_transfer_params relay and
connector registration (smg-project/smg#2255, #2425, #2358, #2359).
Add KV-transfer-protocol pairing and --pd-pairing-mode (#2484, #2486, #2504),
the gRPC decode admission window, n>1 fan-out, PD error codes, and
Messages/Responses/count_tokens support (#2466, #2482, #2479, #2250, #2638).
Add an EPD section and fix stale worker flags, metrics, and examples.

Signed-off-by: Simo Lin <25425177+slin1237@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 43 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 4 included reviews currently available. Your 62 included PR review attempts over the past 7 days set your current allowance at 4 reviews per hour.

Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: 69e0bd83-2aca-4031-a898-f06feadb5821

📥 Commits

Reviewing files that changed from the base of the PR and between 7362b40 and eb5279a.

📒 Files selected for processing (6)
  • src/lib/content/concepts/architecture/overview.md
  • src/lib/content/concepts/architecture/service-discovery.md
  • src/lib/content/concepts/routing/pd-disaggregation.md
  • src/lib/content/getting-started/index.md
  • src/lib/content/getting-started/pd-disaggregation.md
  • src/lib/content/getting-started/service-discovery.md

Comment @coderabbitai help to get the list of available commands.

SGLang 0.5.16+ names the flag --smg-grpc-mode and keeps --grpc-mode as a
deprecated alias; smg pins SGLang 0.5.20. Move the concept example's decode
worker to 50061 as well, clear of the prefill sidecar on --port + 1.

Signed-off-by: Simo Lin <25425177+slin1237@users.noreply.github.com>
Verified against smg v1.11.0 (3be823a7):
- Drop the worker-spec pairing_protocol field as a source: registration
  never applies it; the label and SMG_PAIRING_PROTOCOL are what work.
- List do_remote_decode/do_remote_prefill in the minted Mooncake params.
- gRPC n>1 still runs the untagged prefill leg and gives Mooncake decode
  the legacy host/port; only HTTP skips prefill.
- Seed offset in the n>1 fan-out applies to TokenSpeed only.
- Deferred decode abort is capped at 30 s; drop "never torn down".
- Only the HTTP PD router names the leg in no_available_workers.
- prefill_upstream_error covers an error status, not transport failures.
- power_of_two check is per explicit leg policy and skipped under
  discovery or IGW; non-nixl/mooncake connectors keep their own name.
- HTTP n>1 stall is scoped to single-prompt completions; pairing is
  compatibility, not key equality; readiness wording is necessary-only.
- Admission wait/shed counter descriptions, restart engine-id caveat,
  and Mooncake push wording in the sequential flow.

Signed-off-by: Simo Lin <25425177+slin1237@users.noreply.github.com>
@slin1237
slin1237 merged commit 91c0a10 into main Sep 24, 2026
8 checks passed
@slin1237
slin1237 deleted the docs/pd-disaggregation-v1.11 branch September 24, 2026 17:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant