[kv_offload][BugFix] Fix store deferral (#41945)

Signed-off-by: Martin Hickey <martin.hickey@ie.ibm.com>
This commit is contained in:
Martin Hickey
2026-05-12 18:04:44 +03:00
committed by GitHub
parent 5a6a9fc6f6
commit 418ba8ef14
2 changed files with 10 additions and 6 deletions
@@ -459,9 +459,6 @@ class RequestRunner:
self.worker_connector.bind_connector_metadata(kv_connector_metadata)
self.worker_connector.start_load_kv(self._dummy_ctx)
if scheduler_output.total_num_scheduled_tokens > 0:
self.worker_connector.wait_for_save()
if complete_transfers:
self.offloading_spec.complete_transfers()
@@ -104,12 +104,19 @@ class OffloadingConnector(KVConnectorBase_V1, SupportsHMA):
pass
def wait_for_save(self):
assert self.connector_worker is not None
assert isinstance(self._connector_metadata, OffloadingConnectorMetadata)
self.connector_worker.prepare_store_kv(self._connector_metadata)
# Store deferral is handled in get_finished(), which always runs even
# when wait_for_save() is skipped (e.g. kv_connector_no_forward).
pass
def get_finished(self, finished_req_ids: set[str]) -> tuple[set[str], set[str]]:
assert self.connector_worker is not None
assert isinstance(self._connector_metadata, OffloadingConnectorMetadata)
# Defer store jobs to the next step's start_kv_transfers. Done here
# (rather than wait_for_save) so stores are queued even on steps where
# wait_for_save is skipped.
self.connector_worker.prepare_store_kv(self._connector_metadata)
return self.connector_worker.get_finished(finished_req_ids)
def build_connector_worker_meta(self) -> OffloadingWorkerMetadata | None: