BE Exec Module — Review Guide

Pipeline Execution

Operator Lifecycle

Tasks move through INITED → RUNNABLE → BLOCKED → FINISHED → FINALIZED.

  • [ ] SharedState source/sink dependencies connected through inject_shared_state()?

Memory Reservation and Spill

  • [ ] Memory-heavy operators use _try_to_reserve_memory() before materializing large structures?
  • [ ] _memory_sufficient_dependency wired in where pressure should block, not overrun?
  • [ ] revoke_memory() preserves the existing spill path?

Dependency Concurrency

  • [ ] Default readiness preserved? Source starts blocked; sink starts ready
  • [ ] set_ready() fast-path precheck vs is_blocked_by() lock-first asymmetry respected?
  • [ ] New Dependency subclasses pair block() / set_ready() on every path?
  • [ ] CountedFinishDependency::add() and sub() under _mtx?

Atomics

  • [ ] Relaxed atomics only for statistics; lifecycle/stop flags use at least acquire/release?