A family of practical algorithms is presented to schedule join execution in a shared-memory multiprocessor environment. The algorithms are based on page connectivity graphs and determine when to read each data page into memory and how to schedule page joins on the available processors. The goal is to overlap page reads with parallel join execution in such a way that both the number of processors and total duration of join processing time are minimized. Upper and lower bounds are derived on the number of processors required to complete join execution in optimal time. A description is given of a general strategy for generating read schedules that it is conjectured can be processed in minimal time (over all read schedules on any number of processors) and a family of practical algorithms utilizing an arbitrary number of lookahead steps to approximate this general strategy.<<ETX>>
[1]
Alfred V. Aho,et al.
The Design and Analysis of Computer Algorithms
,
1974
.
[2]
T. H. Merrett,et al.
Scheduling of Page-Fetches in Join Operations
,
1981,
VLDB.
[3]
Hon Fung Li,et al.
Scheduling of page fetches in join operations using B/sub c/-trees
,
1988,
Proceedings. Fourth International Conference on Data Engineering.
[4]
David J. DeWitt,et al.
Parallel algorithms for the execution of relational database operations
,
1983,
TODS.
[5]
Sakti Pramanik,et al.
Use of graph-theoretic models for optimal relational database accesses to perform join
,
1985,
TODS.
[6]
Patrick Valduriez,et al.
Join indices
,
1987,
TODS.