Sunday, October 19, 2008

Encapsulation of Parallelism in the Volcano Query Processing System, Graefe

Volcano is a query evaluation system that was developed to be extensible and parallelizable. In particular, it uses the "operator model" in which an exchange operator is responsible for running single-process code in parallel. This operator allows pipelining between processes and sets up a consumer/producer relation between the parent and child.

So-called "bushy" parallelism is supported by the exchange operator and forking; intra-process parallelism is supported with data partitioning and intermediate result queues. A somewhat odd decision made in the design of Volcano is that child processes must wait for the parent processes to complete before the call to close trickles down the tree to it; this order was the result of design decisions involving virtual devices and record pinning.

No comments: