An Empirical Study of Tracing Techniques from a Failure Analysis Perspective

  • Authors:
  • Satya Kanduri;Sebastian Elbaum

  • Affiliations:
  • -;-

  • Venue:
  • ISSRE '02 Proceedings of the 13th International Symposium on Software Reliability Engineering
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

Tracing is a dynamic analysis technique to continuouslycapture events of interest on a running program. The occurrenceof a statement, the invocation of a function, and thetrigger of a signal are examples of traced events. Softwareengineers employ traces to accomplish various tasks, rangingfrom performance monitoring to failure analysis. Despiteits capabilities, tracing can negatively impact the performanceand general behavior of an application. In orderminimize that impact, traces are normally buffered andtransferred to (slower) permanent storage at specific intervals.This scenario presents a delicate balance. Increasedbuffering can minimize the impact on the target program,but it increases the risk of losing valuable collected datathe event of a failure. Frequent disk transfers can ensuretraced data integrity, but it risks a high impact on thetarget program. We conducted an experiment involving sixtracing schemes and various buffer sizes to address thesetrade-offs. Our results highlight opportunities for tailoredtracing schemes that would benefit failure analysis.