Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions ballista/core/proto/ballista.proto
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ message BallistaPhysicalPlanNode {
OrderedRangeRepartitionExecNode ordered_range_repartition = 9;
PerPartitionFilterExecNode per_partition_filter = 10;
PartitionedBoundedWindowAggExecNode partitioned_bounded_window_agg = 11;
RangeShuffleReaderExecNode range_shuffle_reader = 12;
}
}

Expand Down Expand Up @@ -201,6 +202,18 @@ message ShuffleReaderPartition {
repeated PartitionLocation location = 1;
}

// Ordering-preserving shuffle reader. Reuses `ShuffleReaderPartition` for the
// M-shape source layout. Partitioning is derived from `partition.len()`
// (always `UnknownPartitioning`, range-partitioned by `merge_ordering`).
message RangeShuffleReaderExecNode {
repeated ShuffleReaderPartition partition = 1;
datafusion_common.Schema schema = 2;
uint32 stage_id = 3;
// Sort key the reader's k-way merge preserves. Advertised on the reader's
// `PlanProperties.eq_properties` for downstream consumers.
repeated datafusion.PhysicalSortExprNode merge_ordering = 4;
}

// CoalescePartitionsRule output: groups upstream partitions into coalesced output partitions.
// Empty when no coalesce is applied (the optional field on the parent message is absent).
message CoalescePlan {
Expand Down
2 changes: 2 additions & 0 deletions ballista/core/src/execution_plans/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ mod partitioned_bounded_window_agg;
mod per_partition_filter;
pub mod plan_algebra;
mod range_repartition_common;
mod range_shuffle_reader;
mod runtime_stats;
mod shuffle_reader;
mod shuffle_writer;
Expand All @@ -46,6 +47,7 @@ pub use ordered_range_repartition::OrderedRangeRepartitionExec;
pub use partitioned_bounded_window_agg::PartitionedBoundedWindowAggExec;
pub use per_partition_filter::{PerPartitionFilterExec, range_partition_predicates};
pub use plan_algebra::{preserves_distribution, preserves_partitioning};
pub use range_shuffle_reader::RangeShuffleReaderExec;
pub use runtime_stats::{
MergedRuntimeStats, RuntimeStatsExec, TaskRuntimeStats,
collect_reports as collect_runtime_stats_reports, cut_partitions,
Expand Down
Loading