A Stop-&-Go operator, or non-pipelineable operator, is a relational operator which cannot produce any result tuples unless it has consumed all of its input. A typical Stop-&-Go operator is the Sort operator. The usage of Stop-&-Go operators in the query execution plan limits the degree of operator-level parallelism.
Some relational operators need to consume their entire input before they are able to produce tuples. These operators are called Stop-&-Go or non-pipelineable operators. A typical example of a Stop-&-Go operator is the Sort operator. To sort a set of tuples, the entire input set needs to be consumed before the operator can output the tuples in sorted order. There are many Stop-&-Go operators, such as various flavors of Join and Aggregation. For example, Hash Join is a Stop-&-Go operator because the Probe phase cannot start unless the Build phase has finished. Similarly, Sort-Merge Join is a Stop-&-Go operator because...
- 1.Graefe G. Encapsulation of parallelism in the volcano query processing system. In: Proceedings of the ACM SIGMOD Conference on Management of Data; 1990. p. 102–11.Google Scholar
- 2.Johnson R, Hardavellas N, Pandis I, Mancheril N, Harizopoulos S, Sabirli K, Ailamaki A, Falsafi B. To share or not to share? In: Proceedings of the 33rd International Conference on Very Large Data Bases; 2007. p. 351–62.Google Scholar