Understanding the behavior of database operations under program control

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

Research output: Contribution to journalArticlepeer-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
Pages (from-to)983-995
Number of pages13
JournalACM SIGPLAN Notices
Volume47
Issue number10
DOIs
StatePublished - Oct 2012

Keywords

  • Program understanding
  • Three-tier applications

All Science Journal Classification (ASJC) codes

  • General Computer Science

Fingerprint

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

Cite this