Skip to content

Commit 93990e6

Browse files
committed
add default distrib-config
1 parent 86635ce commit 93990e6

7 files changed

Lines changed: 11 additions & 15 deletions

File tree

examples/custom_worker_url_routing.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ use datafusion_distributed::test_utils::localhost::{
4141
LocalHostWorkerResolver, spawn_worker_service,
4242
};
4343
use datafusion_distributed::{
44-
DistributedExt, DistributedLeafExec, SessionStateBuilderExt, TaskEstimation,
45-
TaskEstimator, TaskRoutingContext, WorkerQueryContext, display_plan_ascii,
44+
DistributedExt, DistributedLeafExec, SessionStateBuilderExt, TaskEstimation, TaskEstimator,
45+
TaskRoutingContext, WorkerQueryContext, display_plan_ascii,
4646
};
4747
use datafusion_proto::physical_plan::PhysicalExtensionCodec;
4848
use datafusion_proto::protobuf;

src/distributed_planner/distributed_config.rs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -90,12 +90,12 @@ impl DistributedConfig {
9090
Ok(distributed_cfg)
9191
}
9292

93-
/// Gets the [DistributedConfig] from the [ConfigOptions]'s extensions.
93+
/// Gets the [DistributedConfig] from the [ConfigOptions]'s extensions, inserting a default if not present.
9494
pub fn from_config_options_mut(cfg: &mut ConfigOptions) -> Result<&mut Self, DataFusionError> {
95-
let Some(distributed_cfg) = cfg.extensions.get_mut::<DistributedConfig>() else {
96-
return plan_err!("DistributedConfig is not in ConfigOptions.extensions");
97-
};
98-
Ok(distributed_cfg)
95+
if cfg.extensions.get::<DistributedConfig>().is_none() {
96+
cfg.extensions.insert(DistributedConfig::default());
97+
}
98+
Ok(cfg.extensions.get_mut::<DistributedConfig>().unwrap())
9999
}
100100

101101
/// Gets the [DistributedConfig] from the [ConfigOptions]'s in the provided [SessionConfig].
@@ -107,7 +107,6 @@ impl DistributedConfig {
107107
pub fn from_task_context(ctx: &Arc<TaskContext>) -> Result<&Self, DataFusionError> {
108108
Self::from_session_config(ctx.session_config())
109109
}
110-
111110
}
112111

113112
impl ConfigExtension for DistributedConfig {

src/distributed_planner/inject_network_boundaries.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ use async_trait::async_trait;
1111
use datafusion::common::tree_node::{TreeNode, TreeNodeRecursion};
1212
use datafusion::common::{HashMap, Result, plan_err};
1313
use datafusion::config::ConfigOptions;
14-
use datafusion::prelude::SessionConfig;
1514
use datafusion::physical_expr::Partitioning;
1615
use datafusion::physical_plan::coalesce_partitions::CoalescePartitionsExec;
1716
use datafusion::physical_plan::execution_plan::CardinalityEffect;
@@ -20,6 +19,7 @@ use datafusion::physical_plan::repartition::RepartitionExec;
2019
use datafusion::physical_plan::sorts::sort_preserving_merge::SortPreservingMergeExec;
2120
use datafusion::physical_plan::union::UnionExec;
2221
use datafusion::physical_plan::{ExecutionPlan, PlanProperties};
22+
use datafusion::prelude::SessionConfig;
2323
use std::any::TypeId;
2424
use std::sync::Arc;
2525
use std::sync::Mutex;

src/distributed_planner/task_estimator.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -376,9 +376,7 @@ impl TaskEstimator for CombinedTaskEstimator {
376376
#[cfg(test)]
377377
mod tests {
378378
use super::*;
379-
use crate::test_utils::in_memory_channel_resolver::InMemoryWorkerResolver;
380379
use crate::test_utils::parquet::register_parquet_tables;
381-
use crate::worker_resolver::WorkerResolverExtension;
382380
use datafusion::error::DataFusionError;
383381
use datafusion::prelude::SessionContext;
384382

src/protocol/channel_resolver.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1+
use crate::WorkerChannel;
12
#[cfg(feature = "grpc")]
23
use crate::protocol::grpc;
3-
use crate::WorkerChannel;
44
use async_trait::async_trait;
55
use datafusion::common::DataFusionError;
66
use datafusion::execution::TaskContext;

src/protocol/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ pub mod grpc;
44
mod channel_resolver;
55
mod worker_channel;
66

7-
pub use channel_resolver::{ChannelResolver, get_distributed_channel_resolver};
87
pub(crate) use channel_resolver::set_distributed_channel_resolver;
8+
pub use channel_resolver::{ChannelResolver, get_distributed_channel_resolver};
99

1010
pub use worker_channel::{
1111
CoordinatorToWorkerMsg, ExecuteTaskRequest, GetWorkerInfoRequest, GetWorkerInfoResponse,

src/test_utils/routing.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -293,8 +293,7 @@ impl TaskEstimator for URLEmitterTaskEstimator {
293293

294294
fn route_tasks(&self, routing_ctx: &crate::TaskRoutingContext<'_>) -> Result<Option<Vec<Url>>> {
295295
let mut routed_urls =
296-
get_distributed_worker_resolver(routing_ctx.task_ctx.session_config())?
297-
.get_urls()?;
296+
get_distributed_worker_resolver(routing_ctx.task_ctx.session_config())?.get_urls()?;
298297

299298
// Trivial routing policy: Assign tasks to URLs in reverse order.
300299
routed_urls.reverse();

0 commit comments

Comments
 (0)