Summary
Query engines need a way to combine operators such as scans, joins, sorts and aggregations into plans, and to run those plans in parallel, without rewriting each operator for every context. Volcano provides a uniform structure that is both extensible and parallel.
Every operator implements the same iterator interface: open, next and close. Plans become trees of iterators that pull one tuple at a time from their children. Parallelism is added by a separate exchange operator, which handles partitioning and communication between processes, so the other operators stay unaware that they run in parallel.
The iterator model is still the default execution design in many systems, including PostgreSQL. Its per-tuple overhead also motivated later work on vectorised and compiled execution, which is why understanding it is a prerequisite for those papers.
