11# SPDX-License-Identifier: Apache-2.0
22# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3- import time
4- from collections .abc import Iterable
5- from typing import TYPE_CHECKING , Any , Optional
3+ from typing import TYPE_CHECKING , Any
64
75import torch
86from lmcache .integration .vllm .vllm_v1_adapter import (
97 LMCacheConnectorV1Impl as LMCacheConnectorLatestImpl ,
108)
119
1210from vllm .config import VllmConfig
13- from vllm .distributed .kv_events import BlockStored , KVCacheEvent , KVEventBatch
1411from vllm .distributed .kv_transfer .kv_connector .v1 .base import (
1512 KVConnectorBase_V1 ,
1613 KVConnectorMetadata ,
1714 KVConnectorRole ,
1815)
1916from vllm .logger import init_logger
2017from vllm .v1 .core .sched .output import SchedulerOutput
21- from vllm .v1 .outputs import KVConnectorOutput
2218
2319if TYPE_CHECKING :
2420 from vllm .attention .backends .abstract import AttentionMetadata
@@ -58,8 +54,6 @@ def __init__(
5854
5955 self ._lmcache_engine = cls (vllm_config , role , self )
6056
61- self ._kv_events : list [KVCacheEvent ] = []
62-
6357 # ==============================
6458 # Worker-side methods
6559 # ==============================
@@ -142,30 +136,6 @@ def get_finished(
142136 """
143137 return self ._lmcache_engine .get_finished (finished_req_ids )
144138
145- def get_kv_connector_kv_cache_events (self ) -> Optional ["KVEventBatch" ]:
146- """
147- Get the KV connector kv cache events collected during the last interval.
148- """
149- events = self ._lmcache_engine .get_kv_events ()
150- if not events :
151- return None
152-
153- lmcache_kv_events : KVEventBatch | None = None
154- for event in events :
155- if lmcache_kv_events is None :
156- lmcache_kv_events = KVEventBatch (ts = time .time (), events = [])
157- block = BlockStored (
158- block_hashes = event .block_hashes ,
159- parent_block_hash = event .parent_block_hash ,
160- token_ids = event .token_ids ,
161- lora_id = event .lora_id ,
162- block_size = event .block_size ,
163- medium = event .medium ,
164- )
165- lmcache_kv_events .events .append (block )
166-
167- return lmcache_kv_events
168-
169139 # ==============================
170140 # Scheduler-side methods
171141 # ==============================
@@ -213,25 +183,6 @@ def build_connector_meta(
213183 """
214184 return self ._lmcache_engine .build_connector_meta (scheduler_output )
215185
216- def update_connector_output (self , connector_output : KVConnectorOutput ):
217- """
218- Update KVConnector state from worker-side connectors output.
219-
220- Args:
221- connector_output (KVConnectorOutput): the worker-side
222- connectors output.
223- """
224- # Get the KV events
225- kv_events = connector_output .kv_cache_events
226- if (
227- not kv_events
228- or not isinstance (kv_events , KVEventBatch )
229- or not kv_events .events
230- ):
231- return
232- self ._kv_events .extend (kv_events .events )
233- return
234-
235186 def request_finished (
236187 self ,
237188 request : "Request" ,
@@ -248,14 +199,3 @@ def request_finished(
248199 returned by the engine.
249200 """
250201 return self ._lmcache_engine .request_finished (request , block_ids )
251-
252- def take_events (self ) -> Iterable ["KVCacheEvent" ]:
253- """
254- Take the KV cache events from the connector.
255-
256- Yields:
257- New KV cache events since the last call.
258- """
259- if self ._kv_events is not None :
260- yield from self ._kv_events
261- self ._kv_events .clear ()
0 commit comments