On optimizing an SQL-like nested query
ACM Transactions on Database Systems (TODS)
Optimizing compilers for modern architectures: a dependence-based approach
Optimizing compilers for modern architectures: a dependence-based approach
ICDE '96 Proceedings of the Twelfth International Conference on Data Engineering
Execution strategies for SQL subqueries
Proceedings of the 2007 ACM SIGMOD international conference on Management of data
Rewriting procedures for batched bindings
Proceedings of the VLDB Endowment
Holistic Query Transformations for Dynamic Web Applications
ICDE '09 Proceedings of the 2009 IEEE International Conference on Data Engineering
A Static Analysis Framework for Database Applications
ICDE '09 Proceedings of the 2009 IEEE International Conference on Data Engineering
Data Flow Analysis: Theory and Practice
Data Flow Analysis: Theory and Practice
Program transformations for asynchronous query submission
ICDE '11 Proceedings of the 2011 IEEE 27th International Conference on Data Engineering
DBridge: A program rewrite tool for set-oriented query execution
ICDE '11 Proceedings of the 2011 IEEE 27th International Conference on Data Engineering
Holistic optimization by prefetching query results
SIGMOD '12 Proceedings of the 2012 ACM SIGMOD International Conference on Management of Data
Optimizing database-backed applications with query synthesis
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Hi-index | 0.00 |
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.