mirror of
https://github.com/kvcache-ai/Mooncake.git
synced 2026-11-05 01:17:55 +00:00
[GH-ISSUE #4149] [RFC]: Native TENT Integration with the vLLM Mooncake KV Connector #1045
Labels
No labels
ascend
auto-closed
bug
bug
CI/Build
Common
documentation
enhancement
feature request
good first issue
help wanted
high priority
MetaX
nightly-failure
pull-request
PyTorch Backend
question
RFC
Roadmap
stale
Store
Tests
Transfer Engine
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
kvcache-ai/Mooncake#1045
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @RuixiangMa on GitHub (Sep 16, 2026).
Original GitHub issue: https://github.com/kvcache-ai/Mooncake/issues/4149
RFC: Native TENT Integration with the vLLM Mooncake KV Connector
This RFC proposes integrating TENT as a native data-plane implementation of
the Mooncake Transfer Engine API used by vLLM's in-tree Mooncake KV Connector.
The Mooncake Connector remains responsible for request coordination, KV
metadata exchange, and readiness control. TENT is used only to move KV blocks
between Prefill and Decode workers.
The implementation is contained in Mooncake/TENT. vLLM continues to use its
unchanged in-tree Mooncake Connector and its existing Transfer Engine API.
TENT selection occurs transparently inside Mooncake.
Goals
clearly defined baseline.
Architecture
The Connector is the only vLLM KV Connector. Mooncake selects its internal
implementation at initialization: native Mooncake remains the default, while
MC_USE_TENT=1enables the TENT path. This does not change vLLM's connectorconfiguration or import any TENT-specific code into vLLM.
Proposed Design
Mooncake/TENT Repository
Mooncake preserves the existing Connector-facing
TransferEnginesurface:TENT owns its native resources and implements bounded concurrent work. In
TENT mode, Mooncake's existing
TransferEnginesurface delegates to theTENT-native engine internally; callers, including vLLM, retain the same API.
A temporary lack of transport capacity is queued or back-pressured according to
the configured limit; it must not be converted into an unrecoverable request
failure without retry policy.
Every transfer path must release batch and segment resources on success,
failure, timeout, cancellation, peer failure, and process shutdown. Cleanup
must be idempotent and safe after partial initialization.
TENT remains implemented in native Mooncake/TENT code; this is not a Python
monkey patch. vLLM imports only Mooncake's existing API and does not import
TENT classes. No vLLM production code change is required.
The unchanged Connector flow remains responsible for:
Configuration
Native Mooncake requires no new setting. TENT is explicitly opt-in:
MC_TENT_CONFis required whenMC_USE_TENT=1unless a documented defaultTENT configuration is available. Mooncake/TENT is the only component that
reads this setting. TENT is not selected by any vLLM setting.
Timeout, cancellation grace, transport capacity, and retry policy are part of
the TENT configuration contract. Their public schema and defaults must be
documented by the Mooncake/TENT implementation rather than introduced as
vLLM-specific environment variables.
Configuration errors fail fast. Transport and device selection must be
configured through the TENT configuration contract rather than silently
ignored Connector arguments.
Failure and Cleanup Semantics
The implementation must guarantee:
and batches;
within a documented bound;
If Decode submission fails after Prefill has produced KV blocks, the control
plane must either cancel the transfer or expire the associated request state.
The implementation must not rely only on Python object destruction for cleanup.
Implementation and Acceptance
The Mooncake/TENT change includes:
MC_USE_TENTselection inside Mooncake;TransferEnginesurface;Acceptance gates:
death reclaim resources within their documented bounds;
required KV blocks;
Proxy changes and benchmark harness updates are test infrastructure. They may
be submitted with the Mooncake integration tests, but they are not part of the
vLLM production Connector API.
Before submitting a new issue...
@github-actions[bot] commented on GitHub (Sep 16, 2026):
Thanks for opening this issue, @RuixiangMa!
27672240A maintainer will triage this when possible. To help us respond faster, please include:
Useful links: Documentation · Contributing guide