Expand description
Cluster mode on Apache DataFusion Ballista (ADR-0013).
OxideLake does not write a scheduler. This module builds the pieces Ballista
lets us plug in — a session builder that installs the placement rule for the
declared cluster capability, a physical codec that ships Gpu*Exec nodes,
and the executor function registry — and wires them into Ballista’s
scheduler and executor processes, plus an in-process standalone cluster for
tests and the CLI.
Functions§
- ballista_
codec - Ballista’s combined logical + physical codec with
oxide_codecas the physical half. - build_
session_ state - Builds the scheduler-side session state: Ballista’s defaults plus the
placement rule targeting the declared cluster capability. This is where
Gpu*Execnodes enter a distributed plan. - config_
producer - Ballista
ConfigProduceryieldingsession_config. - executor_
config - Executor configuration with OxideLake’s hooks installed.
- function_
registry - Functions registered on every executor: Ballista’s defaults plus
OxideLake’s SQL UDFs (
l2_distance,cosine_distance), so a distance projection that was not lowered to aGpu*Execstill runs on workers. - oxide_
codec - The physical codec every OxideLake process installs: our
Gpu*Execencoding on top of Ballista’s own codec (shuffle nodes). - run_
executor - Runs a Ballista executor until it exits.
- run_
scheduler - Runs a Ballista scheduler until it exits.
- runtime_
producer - Ballista
RuntimeProducerfor executors. - scheduler_
config - Scheduler configuration with OxideLake’s hooks installed.
- session_
builder - Ballista
SessionBuilderwrappingbuild_session_state. - session_
config - Session configuration for every process: Ballista defaults, Parquet pruning on, and the OxideLake codec.
- start_
standalone - Starts an in-process scheduler plus
executorsexecutors on ephemeral localhost ports and returns the scheduler address. Everything runs on the current tokio runtime and stops with it.