Volcano Model

The Volcano model (originally known as the Iterator Model) is the 'classical' evaluation strategy of an analytical DBMS query:

Each relational-algebraic operator produces a tuple stream, and a consumer can iterate over its input streams.

The tuple stream interface is essentially: 'open', 'next' and 'close';  all operators offer the same interface, and the implementation is opaque.

Each 'next' call produces a new tuple from the stream, if one is available. To obtain the query output, one "next-next-next"s on the final RA operator; that one will in turn use "next"s on its inputs to pull tuples allowing it to produce output tuples, etc. Some "next"s will take an extremely long time, since many "next"s on previous operators will be required before they emit any output. Example: SELECT max(v) FROM t; may need to go trough all of t in order to find that maximum.