@@ -306,21 +306,33 @@ bool CommChannel::allocate_kv_cache_with_transfer(
306306 return true ;
307307}
308308
309- bool CommChannel::load_kv_blocks_from_store_async (
310- const std::vector<CacheBlockInfo >& cache_block_info ,
309+ void CommChannel::transfer_kv_blocks (
310+ const std::vector<BlockTransferInfo >& block_transfer_info ,
311311 folly::Promise<uint32_t >& promise) {
312- proto::CacheBlockInfos pb_cache_block_info;
313- if (!cache_block_info_to_proto (cache_block_info, &pb_cache_block_info)) {
312+ proto::BlockTransferInfos pb_block_transfer_info;
313+ if (!block_transfer_info_to_proto (
314+ 0x0 , block_transfer_info, &pb_block_transfer_info)) {
314315 promise.setValue (0 );
315- return false ;
316+ return ;
316317 }
317318
318- auto done = new LoadKVCacheFromStoreClosure ();
319+ auto done = new TransferBlocksClosure ();
319320 done->promise = std::move (promise);
320- stub_->LoadKVCacheFromStore (
321- &done->cntl , &pb_cache_block_info, &done->response , done);
321+ stub_->TransferBlocks (
322+ &done->cntl , &pb_block_transfer_info, &done->response , done);
323+ }
322324
323- return true ;
325+ void CommChannel::transfer_kv_blocks (
326+ const uint64_t batch_id,
327+ const std::vector<BlockTransferInfo>& block_transfer_info) {
328+ proto::BlockTransferInfos pb_block_transfer_info;
329+ if (!block_transfer_info_to_proto (
330+ batch_id, block_transfer_info, &pb_block_transfer_info)) {
331+ return ;
332+ }
333+ brpc::Controller cntl;
334+ proto::TransferStatus response;
335+ stub_->TransferBlocks (&cntl, &pb_block_transfer_info, &response, nullptr );
324336}
325337
326338bool CommChannel::get_last_step_result_async (
@@ -397,18 +409,6 @@ bool CommChannel::execute_model_with_brpc(
397409 return true ;
398410}
399411
400- void LoadKVCacheFromStoreClosure::Run () {
401- std::unique_ptr<LoadKVCacheFromStoreClosure> self_guard (this );
402-
403- bool success = !cntl.Failed ();
404- if (!success) {
405- promise.setValue (0 );
406- } else {
407- promise.setValue (response.success_cnt ());
408- }
409- return ;
410- }
411-
412412void ExecuteModelClosure::Run () {
413413 std::unique_ptr<ExecuteModelClosure> self_guard (this );
414414
@@ -437,4 +437,17 @@ void InitModelClosure::Run() {
437437
438438 return ;
439439}
440+
441+ void TransferBlocksClosure::Run () {
442+ std::unique_ptr<TransferBlocksClosure> self_guard (this );
443+
444+ bool success = !cntl.Failed ();
445+ if (!success) {
446+ promise.setValue (0 );
447+ } else {
448+ promise.setValue (response.success_cnt ());
449+ }
450+ return ;
451+ }
452+
440453} // namespace xllm
0 commit comments