ABSTRACT
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.
- M. Chavan, R. Guravannavar, K. Ramachandra, and S. Sudarshan. Program transformations for asynchronous query submission. In IEEE International Conference on Data Engineering, pages 375--386, 2011. Google ScholarDigital Library
- M. Chavan, R. Guravannavar, K. Ramachandra, and S. Sudarshan. Dbridge: A program rewrite tool for set-oriented query execution. In IEEE International Conference on Data Engineering, pages 1284--1287, 2011. Google ScholarDigital Library
- A. Dasgupta, V. Narasayya, and M. Syamala. A static analysis framework for database applications. In IEEE International Conference on Data Engineering, 2009. Google ScholarDigital Library
- DBridge. The DBridge Holistic Optimizer http://www.cse.iitb.ac.in/infolab/dbridge.Google Scholar
- M. Elhemali, C. A. Galindo-Legaria, T. Grabs, and M. M. Joshi. Execution Strategies for SQL Subqueries. In ACM SIGMOD, 2007. Google ScholarDigital Library
- R. Guravannavar. Optimization and Evaluation of Nested Queries and Procedures. Ph.D. thesis, Indian Institute of Technology, Bombay, 2009.Google Scholar
- R. Guravannavar and S. Sudarshan. Rewriting Procedures for Batched Bindings. In Intl. Conf. on Very Large Databases, 2008. Google ScholarDigital Library
- Hibernate. The Hibernate O/R mapping tool: http://hibernate.org.Google Scholar
- JDBC. Java Database Connectivity (JDBC) API http://java.sun.com/products/jdbc/overview.html.Google Scholar
- K. Kennedy and J. R. Allen. Optimizing compilers for modern architectures: a dependence-based approach. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2002. ISBN 1-55860-286-0. Google ScholarDigital Library
- U. Khedker, A. Sanyal, and B. Karkare. Data Flow Analysis: Theory and Practice. CRC Press, Inc., 1st edition, 2009. ISBN 0849328802. Google ScholarDigital Library
- W. Kim. On Optimizing an SQL-like Nested Query. In ACM Trans. on Database Systems, Vol 7, No.3, 1982. Google ScholarDigital Library
- A. Manjhi, C. Garrod, B. M. Maggs, T. C. Mowry, and A. Tomasic. Holistic Query Transformations for Dynamic Web Applications. In IEEE International Conference on Data Engineering, 2009. Google ScholarDigital Library
- K. Ramachandra and S. Sudarshan. Holistic optimization by prefetching query results. In ACM SIGMOD, 2012 (to appear). Google ScholarDigital Library
- P. Seshadri, H. Pirahesh, and T. C. Leung. Complex Query Decorrelation. In IEEE International Conference on Data Engineering, 1996. Google ScholarDigital Library
- SOOT. A Java Optimization Framework http://www.sable.mcgill.ca/soot.Google Scholar
- K. C. Yeung. Dynamic Performance Optimisation of Distributed Java Applications. PhD thesis, Imperial College of Science, Technology and Medicine, 2004.Google Scholar
Index Terms
- Program analysis and transformation for holistic optimization of database applications
Recommendations
Context-sensitive program analysis as database queries
PODS '05: Proceedings of the twenty-fourth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systemsProgram analysis has been increasingly used in software engineering tasks such as auditing programs for security vulnerabilities and finding errors in general. Such tools often require analyses much more sophisticated than those traditionally used in ...
Efficient points-to analysis for whole-program analysis
To function on programs written in languages such as C that make extensive use of pointers, automated software engineering tools require safe alias information. Existing alias-analysis techniques that are sufficiently efficient for analysis on large ...
Learning a strategy for adapting a program analysis via bayesian optimisation
OOPSLA '15Building a cost-effective static analyser for real-world programs is still regarded an art. One key contributor to this grim reputation is the difficulty in balancing the cost and the precision of an analyser. An ideal analyser should be adaptive to a ...
Comments