skip to main content
10.1145/2384616.2384688acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Understanding the behavior of database operations under program control

Published: 19 October 2012 Publication History

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.

References

[1]
Twisted Documentation: twisted.enterprise.adbapi: Twisted RDBMS support. http://twistedmatrix.com/documents/current/core/howto/rdbms.html, 2011.
[2]
Drizzle client & protocol library. https://launchpad.net/libdrizzle, 2011.
[3]
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.
[4]
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.
[5]
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.
[6]
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.
[7]
E. Bruneton, R. Lenglet, and T. Coupaye. ASM: A Code Manipulation Tool to Implement Adaptable Systems, Technical report, France Telecom R&D, 2002.
[8]
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.
[9]
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.
[10]
The Apache Software Foundation. Apache Geronimo v2.0 Documentation : Daytrader. https://cwiki.apache.org/GMOxDOC20/daytrader.html/, 2011.
[11]
Mike Heat. Asynchronous database drivers. Master's thesis, Brigham Young University, April 2011.
[12]
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.
[13]
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.
[14]
G Luo and M Watzkełdots. Grouping database queries and/or transactions, October 2010.
[15]
D. DeWitt M. Carey and J. Naughton. The 007 benchmark. SIGMOD Record, 22(2):12--21, 1993.
[16]
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.
[17]
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.
[18]
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.
[19]
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.
[20]
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.
[21]
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.
[22]
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.
[23]
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.

Cited By

View all

Index Terms

  1. Understanding the behavior of database operations under program control

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    OOPSLA '12: Proceedings of the ACM international conference on Object oriented programming systems languages and applications
    October 2012
    1052 pages
    ISBN:9781450315616
    DOI:10.1145/2384616
    • cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 47, Issue 10
      OOPSLA '12
      October 2012
      1011 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/2398857
      Issue’s Table of Contents
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 19 October 2012

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. program understanding
    2. three-tier applications

    Qualifiers

    • Research-article

    Conference

    SPLASH '12
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 268 of 1,244 submissions, 22%

    Upcoming Conference

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)5
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 06 Jan 2025

    Other Metrics

    Citations

    Cited By

    View all

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media