You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Promote the previously concrete `WorkerConnection` struct to a pair of
traits so embedded executors can plug their own non-Flight transport
into `WorkerConnectionPool` without forking the per-operator code paths.
- `WorkerConnection`: per-task connection that demultiplexes the
underlying transport into one record-batch stream per partition.
- `WorkerTransport`: factory that opens a `WorkerConnection` for a
given input stage / partition range / target task.
The default implementation (`FlightWorkerTransport` /
`FlightWorkerConnection`) is the existing Arrow-Flight gRPC code,
moved verbatim behind the trait. The pool's slot type changes to
`Box<dyn WorkerConnection + Send + Sync>` and `get_or_init_worker_connection`
now consults the transport registered on the `TaskContext` via a new
`get_distributed_worker_transport` accessor; callers who haven't
registered one fall back to a process-wide `FlightWorkerTransport`.
Custom transports plug in through
`DistributedExt::with_distributed_worker_transport`, mirroring the
existing channel- and worker-resolver hooks.
Drive-bys: drop the unused `on_metadata` callback from
`stream_partition` (every existing caller passed `|_meta| {}`); rename
the inner struct to `FlightWorkerConnection` and `WorkerConnection::init`
to `FlightWorkerConnection::open`; tighten the connection-slot type
into a `ConnectionSlot` alias for clippy.
All 190 lib tests + 39 integration tests pass; clippy + cargo fmt
clean.
0 commit comments