use crate::planning::plan::PartitionSpec;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct PartitioningConfig {
pub enabled: bool,
pub min_rows_per_partition: u64,
pub max_partitions: usize,
pub vertex_id_range: Option<std::ops::Range<i64>>,
pub max_workers: usize,
pub max_buffered_chunks: usize,
pub fixed_overhead_rows: u64,
pub per_partition_rows: u64,
pub exchange_row_per_mille: u32,
}
impl Default for PartitioningConfig {
fn default() -> Self {
Self {
enabled: false,
min_rows_per_partition: 100_000,
max_partitions: 1,
vertex_id_range: None,
max_workers: 1,
max_buffered_chunks: 10,
fixed_overhead_rows: 0,
per_partition_rows: 0,
exchange_row_per_mille: 0,
}
}
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct PartitioningDecision {
pub partition_spec: Option<PartitionSpec>,
pub reason: String,
}
#[derive(Debug, Clone, Default, PartialEq, Eq)]
pub struct PartitioningLayoutInfo {
pub layout_version: u64,
pub vertex_id_range: Option<std::ops::Range<i64>>,
}