Light-Weight Instrumentation From Relational Queries Over Program Traces

Abstract

Instrumenting programs with code to monitor their dynamic behaviour is a technique as old as computing. Today most instrumentation is either inserted manually by programmers which is tedious, or automatically by specialized tools, which are nontrivial to build and monitor particular properties. We introduce Program Trace Query Language (PTQL), a general language in which programmers can write expressive, declarative queries about program behaviour. PTQL is based on relational queries over program traces. We argue that PTQL is more amenable to human and machine understanding than competing languages. We also describe a compiler, Partiqle, that takes a PTQL query and a Java program and produces an instrumented program. This instrumented program runs normally but also evaluates the PTQL query on-line. We explain some novel optimizations required to compile relational queries into efficient instrumentation. To help evaluate our work, we present the results of applying a variety of PTQL queries to a set of benchmark programs, including the Apache Tomcat Web server. The results show that our prototype system already has usable performance, and that our optimizations are critical to obtaining this performance. Our queries also revealed significant (and apparently unknown) performance bugs in the jack SpecJVM98 benchmark, in Tomcat, and in the IBM Java class library, and some uncomfortably clever code in the Xerces XML parser.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Mar 01, 2004
Accession Number
ADA603315

Entities

People

  • Alex Aiken
  • Robert O'callahan
  • Simon Goldsmith

Organizations

  • University of California, Berkeley

Tags

DTIC Thesaurus Topics

  • Algorithms
  • Best Practices
  • Compilers
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Databases
  • Debugging
  • Hash Tables
  • Instrumentation
  • Language
  • Object Code
  • Optimization
  • Ray Tracing
  • Statistical Analysis
  • Transient Response Analysis

Fields of Study

  • Computer science

Readers

  • Database Systems and Applications
  • Systems Analysis and Design