Cost-based Rescheduling:
Identify runnable subtrees: subtrees made up entirely of nonbocked operators.
Runnable subtrees can be scheduled out of order by inserting materialization operators at its root.
Materialization operators: they issue Open, Next, close calls to the root of the subtree and save results in a temporary relation.