0AyanamiRei commented on issue #53798:
URL: https://github.com/apache/doris/issues/53798#issuecomment-3131278327

   **If anyone else would like to take over this issue, feel free to leave a 
comment**—I’ll move on to another issue first. Below are some helpful notes on 
the strategy for this issue:
   
   <img width="1851" height="916" alt="Image" 
src="https://github.com/user-attachments/assets/b5be9c50-8a27-4528-a5cf-65bf77da26ba";
 />
   
   The entire call chain for the BE-side warm-up is shown in the diagram. After 
the BE breaks down the job into segment-level tasks and submits them via 
`submit_download_task` to the `_task_queue`, the `_poller` checks this queue 
and assigns tasks to the `_workers` thread pool via `submit_func` to execute 
`download_blocks`. The `wait` (`CountdownEvent`) is propagated along the chain, 
and the BE then calls `wait->timed_wait(time)` to await task completion.
   
   To quickly respond to cancel messages from the FE, I think modifications can 
be made at two key points
   
   1. First proposed modification : Split `WAIT_TIME_SECONDS` into multiple 
slots to allow responsiveness to external interruptions (e.g., cancel 
requests). This reduces latency compared to checking for cancellation only 
after processing an entire batch, though a maximum wait time still exists 
(equal to the slot duration).
   2. Second proposed modification : Extend `FileCacheBlockDownloader` to 
provide not only `submit_download_task` but also a `cancel_download_task` 
interface, notifying download threads to invoke a callback after each subtask 
completes. The worst-case overhead here would be: max_overhead = 
time_to_submit_entire_job + 
time_to_load_one_config::s3_write_buffer_size_chunk. 
   
   Maybe you will think the second solution is more elegant, but you'll need to 
address how to maintain a record of a job's `_task_queue `rather than just 
popping tasks and handing them over to worker threads.
   
   You may need to discuss with the relevant stakeholders to determine which 
approach is better.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to