>>>>> "CB" == Christopher Browne <cbbrowne@acm.org> writes:
CB> futile discussions ask for it. Notably, on an SMP system, it CB> would be a neat idea for complex queries
involvingjoins to CB> split themselves so that different parts run in separate CB> threads.
You don't really need threads for this. All you need is to have
multiple backends and use queues to exchange tuples at specific
points. This is much like the Exchange operator in Volcano.
CB> The other Way, Way Cool part would be for queries that are CB> scanning big tables to split the scans into
unionsof partial CB> scans, so that on an 8 CPU box you'd take the "Big 4GB Table" CB> and have 8 threads
simultaneouslyscanning different parts of CB> it. (And making ARC all the more important :-).)
Again this can be done without threads .. you just need inter-process
communication.
(BTW, there is at least one commercial system that follows exactly
this model).
--
Pip-pip
Sailesh
http://www.cs.berkeley.edu/~sailesh