Skip to main content

PlanExecutor

Trait PlanExecutor 

Source
pub trait PlanExecutor:
    Send
    + Sync
    + 'static {
    // Required method
    fn execute_plan(
        &self,
        req: ExecuteRequest,
    ) -> impl Future<Output = ExecuteResponse> + Send;
}
Expand description

Trait for executing a pre-planned PhysicalPlan on the local Data Plane.

Implemented in nodedb/src/control/exec_receiver.rs by LocalPlanExecutor. The cluster RPC handler calls this when it receives an ExecuteRequest.

Responsibilities:

  1. Validate that deadline_remaining_ms > 0.
  2. For each DescriptorVersionEntry, verify the local descriptor version matches.
  3. Decode plan_bytes via nodedb::bridge::physical_plan::wire::decode.
  4. Dispatch through the local SPSC bridge.
  5. Collect response payloads.
  6. Map errors to TypedClusterError.

Required Methods§

Source

fn execute_plan( &self, req: ExecuteRequest, ) -> impl Future<Output = ExecuteResponse> + Send

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§