Program analysis and transformation for holistic optimization of database applications

We describe DBridge, a novel program analysis and transformation tool to optimize database and web service access. Traditionally, rewrite of queries and programs are done independently, by the database query optimizer and the language compiler respectively, leaving out many optimization opportunities. Our tool aims to bridge this gap by performing holistic transformations, which include both program and query rewrite. There has been earlier research in this area involving program analysis and transformation for automatically rewriting database applications to perform optimizations; for example, our earlier work has addressed batching or asynchronous submission of iterative queries, and prefetching query results. DBridge implements these techniques for Java programs and internally uses Soot, a Java optimization framework, for static analysis and transformation. DBridge can perform such optimizations on Java programs that use the JDBC API to access the database. It is currently being extended to handle the Hibernate API, and Web Services. In this paper, we describe the program transformations that DBridge can perform. We then discuss the design and implementation of DBridge with a focus on how the Soot framework has been used to achieve these goals. Finally, we conclude by discussing some of the future directions for our tool.

[1]  S. Sudarshan,et al.  Rewriting procedures for batched bindings , 2008, Proc. VLDB Endow..

[2]  Bruce M. Maggs,et al.  Holistic Query Transformations for Dynamic Web Applications , 2009, 2009 IEEE 25th International Conference on Data Engineering.

[3]  Kwok Cheung Yeung Dynamic performance optimisation of distributed applications , 2004 .

[4]  S. Sudarshan,et al.  DBridge: A program rewrite tool for set-oriented query execution , 2011, 2011 IEEE 27th International Conference on Data Engineering.

[5]  Won Kim,et al.  On optimizing an SQL-like nested query , 1982, TODS.

[6]  Amitabha Sanyal,et al.  Data Flow Analysis - Theory and Practice , 2009 .

[7]  Vivek R. Narasayya,et al.  A Static Analysis Framework for Database Applications , 2009, 2009 IEEE 25th International Conference on Data Engineering.

[8]  S. Sudarshan,et al.  Program transformations for asynchronous query submission , 2011, 2011 IEEE 27th International Conference on Data Engineering.

[9]  Torsten Grabs,et al.  Execution strategies for SQL subqueries , 2007, SIGMOD '07.

[10]  Ravindra Guravannavar Optimization and Evaluation of Nested Queries and Procedures , 2009, ArXiv.

[11]  S. Sudarshan,et al.  Holistic optimization by prefetching query results , 2012, SIGMOD Conference.

[12]  Ken Kennedy,et al.  Optimizing Compilers for Modern Architectures: A Dependence-based Approach , 2001 .

[13]  Hamid Pirahesh,et al.  Complex query decorrelation , 1996, Proceedings of the Twelfth International Conference on Data Engineering.