Skip to content

Commit 9e72fc4

Browse files
authored
Add NetworkBoundaryBuilder argument to inject_network_boundaries (#463)
This is one PR from the following stack of PRs: - #477 - #463 <- you are here - #464 - #478 - #479 - #486 - #432 This PR introduces a NetworkBoundaryBuilder argument to the network boundary injection logic, allowing more flexible and configurable strategies for determining which exchanges require network communication. This enables better optimization of data movement across distributed tasks.
1 parent 3d0dfad commit 9e72fc4

5 files changed

Lines changed: 308 additions & 191 deletions

File tree

src/distributed_planner/distributed_query_planner.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
use crate::distributed_planner::inject_network_boundaries::inject_network_boundaries;
1+
use crate::distributed_planner::inject_network_boundaries::{
2+
CardinalityBasedNetworkBoundaryBuilder, inject_network_boundaries,
3+
};
24
use crate::distributed_planner::insert_broadcast::insert_broadcast_execs;
35
use crate::distributed_planner::partial_reduce_below_network_shuffles::partial_reduce_below_network_shuffles;
46
use crate::distributed_planner::prepare_network_boundaries::prepare_network_boundaries;
@@ -93,7 +95,7 @@ impl QueryPlanner for DistributedQueryPlanner {
9395

9496
plan = insert_broadcast_execs(plan, cfg)?;
9597

96-
plan = inject_network_boundaries(plan, cfg).await?;
98+
plan = inject_network_boundaries(plan, CardinalityBasedNetworkBoundaryBuilder, cfg).await?;
9799

98100
plan = prepare_network_boundaries(plan)?;
99101
if !plan.exists(|plan| Ok(plan.is_network_boundary()))? {

0 commit comments

Comments
 (0)