Compile-time inter-query dependence analysis

Most parallel databases exploit two types of parallelism: intra-query parallelism and inter-transaction concurrency. Between these two cases lies another type of parallelism: inter-query parallelism within a transaction or application. Exploiting inter-query parallelism requires either compiler support to automatically parallelize the existing embedded query programs; or programming support to write explicitly parallel query programs. The authors present compiler analysis to automatically detect parallelism in the embedded query programs. They present compiler algorithms for detecting dependences in such programs. They show that the properties of some aggregate functions such as MIN and MAX can help reduce statically computed dependences.

[1]  Wojciech Cellary,et al.  Concurrency control in distributed database systems , 1988, Studies in computer science and artificial intelligence.

[2]  David J. DeWitt,et al.  Parallel Database Systems: The Future of High Performance Database Processing 1 , 1992 .

[3]  Neil D. Jones,et al.  Flow analysis and optimization of LISP-like structures , 1979, POPL.

[4]  Donovan A. Schneider,et al.  The Gamma Database Machine Project , 1990, IEEE Trans. Knowl. Data Eng..

[5]  Philip A. Bernstein,et al.  Concurrency Control in Distributed Database Systems , 1986, CSUR.

[6]  Michael Wolfe,et al.  High performance compilers for parallel computing , 1995 .

[7]  B. Ramakrishna Rau,et al.  Some scheduling techniques and an easily schedulable horizontal architecture for high performance scientific computing , 1981, MICRO 14.

[8]  David J. DeWitt,et al.  Practical Skew Handling in Parallel Joins , 1992, VLDB.

[9]  Kian-Lee Tan,et al.  Multi-Join Optimization for Symmetric Multiprocessors , 1993, VLDB.

[10]  Victor Vianu,et al.  Parallel Update Transactions , 1990, Theor. Comput. Sci..

[11]  David J. DeWitt,et al.  Parallel database systems: the future of high performance database systems , 1992, CACM.

[12]  Serge Abiteboul,et al.  Equivalence and optimization of relational transactions , 1988, JACM.

[13]  George B. Dantzig,et al.  Fourier-Motzkin Elimination and Its Dual , 1973, J. Comb. Theory, Ser. A.

[14]  William Pugh,et al.  A practical algorithm for exact array dependence analysis , 1992, CACM.

[15]  Utpal Banerjee,et al.  Dependence analysis for supercomputing , 1988, The Kluwer international series in engineering and computer science.

[16]  Mark N. Wegman,et al.  Efficiently computing static single assignment form and the control dependence graph , 1991, TOPL.

[17]  Alexandru Nicolau,et al.  Parallelizing Programs with Recursive Data Structures , 1989, IEEE Trans. Parallel Distributed Syst..