@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / 5b833be49e
Fork 0

A high-throughput and memory-efficient inference and serving engine for LLMs

Mirrored from https://github.com/tduncan-lum/Nvidia-Optimization-Stack---VLLM.git

Synced Nov 10, 15:15 UTC

[1/2][lmcache connector] clean up lmcache multi-process adapter (#31838)

Signed-off-by: ApostaC <yihua98@uchicago.edu>

Yihua Cheng committed Jan 6, 2026 at 18:02 UTC 5b833be49e02fec2542396a01c9575dfe6e1def2
2 files changed +23 -7
vllm/distributed/kv_transfer/kv_connector/v1/lmcache_integration/multi_process_adapter.py
+9 -1
@@ -95,6 +95,10 @@ class LMCacheMPSchedulerAdapter:
95 kv_rank: The kv rank used for LMCache keys
96 vllm_block_size: The block size used in vLLM
97 """
98 + logger.warning(
99 + "Importing LMCacheMPSchedulerAdapter is deprecated. "
100 + "Please update your LMCache to the latest version."
101 + )
102 self.mq_client = MessageQueueClient(server_url, context)
103
104 # Request futures
@@ -147,7 +151,7 @@ class LMCacheMPSchedulerAdapter:
151 """
152 return self.blocks_in_chunk
153
150 - def _cleanup_lookup_result(self, request_id: str) -> None:
154 + def cleanup_lookup_result(self, request_id: str) -> None:
155 """
156 Clean up lookup future for a finished request to prevent memory leak.
157 Args:
@@ -176,6 +180,10 @@ class LMCacheMPWorkerAdapter:
180 kv_rank: int,
181 vllm_block_size: int,
182 ):
183 + logger.warning(
184 + "Importing LMCacheMPWorkerAdapter is deprecated. "
185 + "Please update your LMCache to the latest version."
186 + )
187 self.mq_client = MessageQueueClient(server_url, context)
188
189 # Instance id for GPU worker
vllm/distributed/kv_transfer/kv_connector/v1/lmcache_mp_connector.py
+14 -6
@@ -17,16 +17,24 @@ from vllm.distributed.kv_transfer.kv_connector.v1.base import (
17 KVConnectorMetadata,
18 KVConnectorRole,
19 )
20 -from vllm.distributed.kv_transfer.kv_connector.v1.lmcache_integration import (
21 - LMCacheMPSchedulerAdapter,
22 - LMCacheMPWorkerAdapter,
23 - LoadStoreOp,
24 -)
20 from vllm.v1.core.sched.output import SchedulerOutput
21 from vllm.v1.outputs import KVConnectorOutput
22 from vllm.v1.request import RequestStatus
23 from vllm.v1.utils import ConstantList
24
25 +try:
26 + from lmcache.integration.vllm.vllm_multi_process_adapter import (
27 + LMCacheMPSchedulerAdapter,
28 + LMCacheMPWorkerAdapter,
29 + LoadStoreOp,
30 + )
31 +except ImportError:
32 + from vllm.distributed.kv_transfer.kv_connector.v1.lmcache_integration import (
33 + LMCacheMPSchedulerAdapter,
34 + LMCacheMPWorkerAdapter,
35 + LoadStoreOp,
36 + )
37 +
38 if TYPE_CHECKING:
39 from vllm.config import VllmConfig
40 from vllm.distributed.kv_events import KVCacheEvent
@@ -702,7 +710,7 @@ class LMCacheMPConnector(KVConnectorBase_V1):
710 else LMCacheMPRequestState.READY
711 )
712 # Clean up lookup future in scheduler adapter
705 - self.scheduler_adapter._cleanup_lookup_result(request.request_id)
713 + self.scheduler_adapter.cleanup_lookup_result(request.request_id)
714
715 def build_connector_meta(
716 self, scheduler_output: SchedulerOutput