Understanding the behavior of database operations under program control

Juan M. Tamayo, Alex Aiken, Nathan Bronson, Mooly Sagiv

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

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.

Original languageEnglish
Title of host publicationSPLASH 2012
Subtitle of host publicationOOPSLA'12 - Proceedings of the 2012 ACM International Conference on Object Oriented Programming SystemsLanguages and Applications
Pages983-995
Number of pages13
DOIs
StatePublished - 2012
Event2012 ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2012 - Tucson, AZ, United States
Duration: 19 Oct 201226 Oct 2012

Publication series

NameProceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA

Conference

Conference2012 ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2012
Country/TerritoryUnited States
CityTucson, AZ
Period19/10/1226/10/12

Keywords

  • Program understanding; three-tier applications

Fingerprint

Dive into the research topics of 'Understanding the behavior of database operations under program control'. Together they form a unique fingerprint.

Cite this