Repository navigation
feat(grpc): expose follower metadata and node-local KV sources - #39659
Merged
ishandhanani merged 21 commits intoOct 6, 2026
Merged
Conversation
Signed-off-by: jain-ria <riajain@NVIDIA.com>
Signed-off-by: jain-ria <riajain@NVIDIA.com>
Signed-off-by: jain-ria <riajain@NVIDIA.com>
jain-ria
marked this pull request as ready for review
September 16, 2026 00:25
jain-ria
requested review from
ByronHsu,
CatherineSue,
Duyi-Wang,
HaiShaw,
JustinTong0323,
ShangmingCai,
Ying1123,
hnyls2002,
ispobock,
merrymercy,
slin1237,
sogalin and
xiezhq-hermann
as code owners
September 16, 2026 00:25
Signed-off-by: jain-ria <riajain@NVIDIA.com>
Signed-off-by: jain-ria <riajain@NVIDIA.com>
Signed-off-by: jain-ria <riajain@NVIDIA.com>
Signed-off-by: jain-ria <riajain@NVIDIA.com>
ishandhanani
left a comment
Collaborator
There was a problem hiding this comment.
Reviewed at 8eaffcf88daca77eef9046fd878bcfe414752e09 against merge base 406c9c71d833570aa89bc26ccb2e9d1518cd4564. One reproduced P2 finding below.
Validation passed: 314 Python tests plus 93 subtests, 14 Rust gRPC tests, Clippy/formatting, and 50 native lifecycle probes. Two node processes on two H100 GPUs on one physical host completed 64/64 concurrent generation requests, delivered per-rank live/replay KV events, and rejected all 24 non-metadata follower RPCs. Physical multi-host networking, GPU DCP/PP, disaggregated serving, and performance A/B were not tested.
Signed-off-by: jain-ria <riajain@NVIDIA.com>
Signed-off-by: jain-ria <riajain@NVIDIA.com>
Signed-off-by: jain-ria <riajain@NVIDIA.com>
jain-ria
force-pushed
the
codex/sglang-local-kv-sidecars
branch
from
September 29, 2026 22:29
e1155ad to
71d0644
Compare
Signed-off-by: jain-ria <riajain@NVIDIA.com>
jain-ria
force-pushed
the
codex/sglang-local-kv-sidecars
branch
from
September 29, 2026 22:38
71d0644 to
39859ba
Compare
Signed-off-by: jain-ria <riajain@NVIDIA.com>
Signed-off-by: jain-ria <riajain@NVIDIA.com>
Contributor
Author
|
/run-extra-ci |
Contributor
|
🚀 Re-running |
Signed-off-by: jain-ria <riajain@NVIDIA.com>
This was referenced Oct 2, 2026
Signed-off-by: jain-ria <riajain@NVIDIA.com>
Contributor
Author
|
/rerun-failed-ci |
Signed-off-by: jain-ria <riajain@NVIDIA.com>
Contributor
Author
|
/rerun-failed-ci |
Contributor
Author
|
/rerun-failed-ci |
Contributor
Author
|
/rerun-failed-ci |
Collaborator
|
base and extra ci passed |
jain-ria
added a commit
to jain-ria/sglang
that referenced
this pull request
Oct 6, 2026
Adopt the concrete streaming return types generated after sgl-project#39659 enabled default gRPC stubs. Preserve the parity chat/completion implementations and text-generation tokenizer guard. Validation: Rust workspace tests passed (including 351 server tests); workspace all-target Clippy with warnings denied, cargo fmt, focused pre-commit checks, and git diff --check passed. Signed-off-by: jain-ria <riajain@NVIDIA.com>
cursor Bot
pushed a commit
to cipheraxat/sglang
that referenced
this pull request
Oct 9, 2026
…roject#39659) Signed-off-by: jain-ria <riajain@NVIDIA.com> Co-authored-by: ishandhanani <82981111+ishandhanani@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Expose node-local engine metadata to externally managed sidecars. With native
--grpc-portconfigured, follower nodes start a lightweight server implementing the existingSglangService/GetServerInfoRPC. They do not initialize a tokenizer, inference bridge, or request-serving frontend; other RPCs returnUNIMPLEMENTED.Leader and follower gRPC servers share the same metadata builder. No protobuf or RPC-path changes are required.
Metadata
dist_init_addrfor engine-group correlation.kv_event_sourceslists only this node's actual publishers: global DP rank, exact subscription endpoint, topic, logical block size (including DCP), and optional replay endpoint.[].kv_eventsdescriptor remains unchanged for compatibility. Consumers of node-local discovery usekv_event_sourcesinstead of inferring ownership from global DP size.Scope
This supersedes the earlier managed-sidecar proposal in this PR. Removed
--sidecar-scope,SGLANG_SIDECAR_CONTEXT, follower sidecar launching, and sidecar watchdog changes. Existing SGLang-managed sidecar launch behavior is unchanged.Only metadata discovery and its server lifecycle are included. KV events still use ZMQ. Dynamo integration, SGLang-managed follower sidecars, metrics/FPM, and live/elastic source membership are follow-ups. Follower metadata is a startup snapshot after scheduler readiness.
Validation
Base:
406c9c71d833570aa89bc26ccb2e9d1518cd4564. The results below were recorded at SGLangc6c49ac1d2721b93becdfc2be7cab46ddf58c0e8.-D warnings, Rust formatting, and scoped Python formatting/lint passed.Qwen/Qwen3-0.6B,NNODES=2,TP_SIZE=2, attentionDP_SIZE=2, aggregated serving. Verified generation on both ranks, follower metadata discovery, actual KV Stored events from global DP ranks 0 and 1, one serving registration with two event sources, and an unpinned repeated prompt routed to the follower with 256 cached tokens.0d41b47c28b0a092671f73e3db5bd5d4908ee8f5from ai-dynamo/dynamo#14908. Both native extensions were rebuilt from the tested sources, usinglmsysorg/sglang:v0.5.19-cu130-runtimeand a runtime-onlysglang-kernel==0.4.7upgrade.--kv-events-config '{"publisher":"zmq","endpoint":"tcp://*:5557","topic":""}'. Follower Dynamo health still reported 503 despite working event delivery; downstream launcher/readiness fixes were made afterward. This was not an entirely healthy deployment run.The two-node GPU run has not been repeated after the later loopback-publisher fix in SGLang
c50b251da8e455dfbb594f8c3b7ccae6eca72129. It does not cover prefill/decode disaggregation, NIXL transfers, multimodal inference, independent restart/replay, elastic membership, or performance.CI States
Latest PR Test (Base): ✅ Run #37489727878
Latest PR Test (Extra): ✅ Run #37489727323
Latest PR Test (AMD ROCm 10): ⏳ Run #37489727895