Abstract
Applications that combine general program logic with persistent databases (e.g., three-tier applications) often suffer large performance penalties from poor use of the database. We introduce a program analysis technique that combines information flow in the program with commutativity analysis of its database operations to produce a unified dependency graph for database statements, which provides programmers with a high-level view of how costly database operations are and how they are connected in the program. As an example application of our analysis we describe three optimizations that can be discovered by examining the structure of the dependency graph; each helps remove communication latency from the critical path of a multi-tier system. We implement our technique in a tool for Java applications using JDBC and experimentally validate it using the multi-tier component of the Dacapo benchmark.
- Twisted Documentation: twisted.enterprise.adbapi: Twisted RDBMS support. http://twistedmatrix.com/documents/current/core/howto/rdbms.html, 2011.Google Scholar
- Drizzle client & protocol library. https://launchpad.net/libdrizzle, 2011.Google Scholar
- Ali Ibrahim Ben Wiedermann and William R. Cook. Interprocedural query extraction for transparent persistence. In Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 19--36, 2008. Google Scholar
Digital Library
- Walter Binder, Jarle Hulaas, and Philippe Moret. Reengineering standard Java runtime systems through dynamic bytecode instrumentation. In Source Code Analysis and Manipulation, 2007. SCAM 2007. Seventh IEEE International Working Conference on, pages 91--100, Sep 2007. Google Scholar
Digital Library
- S. Blackburn, R. Garner, C. Hoffmann, A. Khang, K. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Guyer, M. Hirzel, A. Hosking, M. Jump, H. Lee, J. Moss, A. Phansalkar, D. Stefanović, T. VanDrunen, D. von Dincklage, and B. Wiedermann. The DaCapo benchmarks: Java benchmarking development and analysis. In Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, OOPSLA '06, pages 169--190. ACM, 2006. Google Scholar
Digital Library
- Phillip Bogle and Barbara Liskov. Reducing cross domain call overhead using batched futures. In Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications, OOPSLA '94, pages 341--354. ACM, 1994. Google Scholar
Digital Library
- E. Bruneton, R. Lenglet, and T. Coupaye. ASM: A Code Manipulation Tool to Implement Adaptable Systems, Technical report, France Telecom R&D, 2002.Google Scholar
- Erika Chin and David Wagner. Efficient character-level taint tracking for Java. In Proceedings of the 2009 ACM workshop on Secure web services, SWS '09, pages 3--12. ACM, 2009. Google Scholar
Digital Library
- Cormac Flanagan and Stephen N. Freund. The RoadRunner dynamic analysis framework for concurrent programs. In Proceedings of the 9th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering, PASTE '10, pages 1--8. ACM, 2010. Google Scholar
Digital Library
- The Apache Software Foundation. Apache Geronimo v2.0 Documentation : Daytrader. https://cwiki.apache.org/GMOxDOC20/daytrader.html/, 2011.Google Scholar
- Mike Heat. Asynchronous database drivers. Master's thesis, Brigham Young University, April 2011.Google Scholar
- Ali Ibrahim and William R. Cook. Automatic prefetching by traversal profiling in object persistence architectures. In Proceedings of the European Conference on Object Oriented Programming, pages 50--73, 2006. Google Scholar
Digital Library
- Ming-Yee Iu and Willy Zwaenepoel. Queryll: Java database queries through bytecode rewriting. In Proceedings of the International Conference on Middleware, pages 201--218, 2006. Google Scholar
Digital Library
- G Luo and M Watzkełdots. Grouping database queries and/or transactions, October 2010.Google Scholar
- D. DeWitt M. Carey and J. Naughton. The 007 benchmark. SIGMOD Record, 22(2):12--21, 1993. Google Scholar
Digital Library
- B. E. Martin. Uncovering database access optimizations in the middle tier with torpedo. In Proceedings of the International Conference on Data Engineering, pages 916--929, 2005. Google Scholar
Digital Library
- Daniel L. Moise and Kenny Wong. Extracting and representing cross-language dependencies in diverse software systems. In Proceedings of the 12th Working Conference on Reverse Engineering, pages 209--218. IEEE Computer Society, 2005. Google Scholar
Digital Library
- J Newsome and D Song. Dynamic taint analysis for automatic detection, analysis, and signature generation of exploits on commodity software. In Proceedings of the 12th Annual Network and Distributed System Security Symposium, NDSS '05, page 18. Internet Society, 2005.Google Scholar
- A. Rama, G. Yorsh, M. Vechev, and E. Yahav. Spring: Speculative prefetching of remote data. In Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications, 2011. Google Scholar
Digital Library
- Maher Salah, Spiros Mancoridis, Giuliano Antoniol, and Massimiliano Di Penta. Scenario-driven dynamic analysis for comprehending large software systems. In Proceedings of the Conference on Software Maintenance and Reengineering, pages 71--80. IEEE Computer Society, 2006. Google Scholar
Digital Library
- Edward J. Schwartz, Thanassis Avgerinos, and David Brumley. All you ever wanted to know about dynamic taint analysis and forward symbolic execution (but might have been afraid to ask). In Proceedings of the 2010 IEEE Symposium on Security and Privacy, SP '10, pages 317--331. IEEE Computer Society, 2010. Google Scholar
Digital Library
- Dennis Strein, Hans Kratz, and Welf Lowe. Cross-language program analysis and refactoring. In Proceedings of the Sixth IEEE International Workshop on Source Code Analysis and Manipulation, pages 207--216. IEEE Computer Society, 2006. Google Scholar
Digital Library
- Woong-Kee Loh Wook-Shin Han and Kyu-Young Whang. Type-level access pattern view: Enhancing prefetching performance using the iterative and recursive patterns. Information Science, 180(21), November 2010. Google Scholar
Digital Library
Index Terms
Understanding the behavior of database operations under program control
Recommendations
Understanding the behavior of database operations under program control
OOPSLA '12: Proceedings of the ACM international conference on Object oriented programming systems languages and applicationsApplications that combine general program logic with persistent databases (e.g., three-tier applications) often suffer large performance penalties from poor use of the database. We introduce a program analysis technique that combines information flow in ...
Benchmarking simple database operations
SIGMOD '87: Proceedings of the 1987 ACM SIGMOD international conference on Management of dataThere are two widely-known benchmarks for database management systems the TP1 benchmarks (Anon et al [1985]), designed to measure transaction throughout, and the Wisconsin benchmarks (Bitton, Dewitt, & Turbyfil [1984]), designed to measure the ...
Understanding software application interfaces via string analysis
ICSE '06: Proceedings of the 28th international conference on Software engineeringIn software systems, different software applications often interact with each other through specific interfaces by exchanging data in string format. For example, web services interact with each other through XML strings. Database applications interact ...







Comments