diff --git a/src/mito2/src/read/series_scan.rs b/src/mito2/src/read/series_scan.rs index 7d3e4f30fb..99600c9733 100644 --- a/src/mito2/src/read/series_scan.rs +++ b/src/mito2/src/read/series_scan.rs @@ -464,6 +464,7 @@ impl SenderList { /// Finds a partition and sends the batch to the partition. async fn send_batch(&mut self, mut batch: SeriesBatch) -> Result<()> { + // Sends the batch without blocking first. match self.try_send_batch(batch)? { Some(b) => { // Unable to send batch to partition. diff --git a/src/query/src/optimizer/parallelize_scan.rs b/src/query/src/optimizer/parallelize_scan.rs index 840cf16160..909ae11295 100644 --- a/src/query/src/optimizer/parallelize_scan.rs +++ b/src/query/src/optimizer/parallelize_scan.rs @@ -67,12 +67,13 @@ impl ParallelizeScan { return Ok(Transformed::no(plan)); } - // don't parallelize if we want per series distribution if matches!( region_scan_exec.distribution(), Some(TimeSeriesDistribution::PerSeries) ) { let partition_range = region_scan_exec.get_partition_ranges(); + // HACK: Allocate expected_partition_num empty partitions to indicate + // the expected partition number. let mut new_partitions = vec![vec![]; expected_partition_num]; new_partitions[0] = partition_range; let new_plan = region_scan_exec