From bfa5ca6f9f7b128c9fbc5cfe35a6a62077bbc5e6 Mon Sep 17 00:00:00 2001 From: zhang2014 Date: Fri, 20 Jun 2025 22:56:17 +0800 Subject: [PATCH] refactor(query): try lazy execution for query fragments --- .../servers/flight/v1/exchange/exchange_transform_shuffle.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/query/service/src/servers/flight/v1/exchange/exchange_transform_shuffle.rs b/src/query/service/src/servers/flight/v1/exchange/exchange_transform_shuffle.rs index 9c3242147c8d3..a4d35f6c2dfbe 100644 --- a/src/query/service/src/servers/flight/v1/exchange/exchange_transform_shuffle.rs +++ b/src/query/service/src/servers/flight/v1/exchange/exchange_transform_shuffle.rs @@ -169,7 +169,8 @@ impl Processor for ExchangeShuffleTransform { } } - if !self.initialized && !self.waiting_outputs.is_empty() { + // Lazy execution: To avoid memory issues from concurrent execution of all query fragments, we will defer execution until all downstream operations are ready. + if !self.initialized && self.waiting_outputs.len() == self.outputs.len() { self.initialized = true; for input in &self.inputs { input.port.set_need_data();