Understanding the behavior of database operations under program control

  • Authors:
  • Juan M. Tamayo;Alex Aiken;Nathan Bronson;Mooly Sagiv

  • Affiliations:
  • Stanford Computer Science, Stanford, CA, USA;Stanford Computer Science, Stanford, CA, USA;Stanford Computer Science, Stanford, CA, USA;Tel-Aviv University, Tel-Aviv, Israel

  • Venue:
  • Proceedings of the ACM international conference on Object oriented programming systems languages and applications
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

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.