Conditional Dynamic Software Instrumentation for Runtime Diagnostics

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software monitoring techniques face challenges in efficiently collecting performance data without over-instrumenting, which can impair application performance and lead to the omission of important data, making analysis and diagnosis difficult.

Innovation Solution

A method for conditional instrumentation that selectively instruments callable methods based on specific execution contexts, such as method calls and transaction data, allowing for targeted data collection only when certain conditions are met, thereby reducing overhead and improving diagnostic capabilities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If comprehensive instrumentation of software components is applied, then complete performance data collection is achieved, but application performance is impaired and overhead costs increase

Engineering Contradiction:
Improveperformance data completenessVSAvoidapplication performance
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The patent applies local quality by instrumenting only specific methods and components that are relevant to the diagnostic question at hand, rather than uniformly instrumenting all software components. The system dynamically determines which methods to instrument based on the specific performance issue being investigated, applying instrumentation locally where needed while leaving other components uninstrumented to minimize overhead.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent implements partial action by collecting only the necessary performance data required for diagnosis rather than comprehensively instrumenting all components. The system performs selective instrumentation based on the specific diagnostic needs, avoiding excessive data collection that would impair application performance while still obtaining sufficient information for effective analysis.

Inventive Principle:
Principle #16Partial or excessive action

2Productivity

If selective instrumentation of specific methods is applied, then overhead is reduced, but important performance data may be omitted

Engineering Contradiction:
Improveapplication performanceVSAvoidperformance data completeness
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent applies dynamics by making the instrumentation configuration adaptive and changeable during runtime. The system can dynamically add or remove instrumentation based on the specific diagnostic needs that emerge during performance analysis. This dynamic approach allows the system to start with minimal instrumentation to maintain performance, then selectively add instrumentation for specific methods when diagnostic requirements demand it.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent implements feedback mechanisms where performance data from instrumented methods is continuously monitored and analyzed. Based on this feedback, the system can identify when additional instrumentation is needed for related called methods, and automatically adjust the instrumentation configuration accordingly. This feedback loop ensures that important performance data is not omitted while keeping overhead minimal.

Inventive Principle:
Principle #23Feedback

3Measurement precision

If dynamic instrumentation is applied to diagnose performance issues, then diagnostic precision is improved, but system complexity increases

Engineering Contradiction:
Improvediagnostic precisionVSAvoidinstrumentation system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies segmentation by breaking down the instrumentation system into modular components that can be independently configured and managed. Each instrumented method can be controlled separately, and the system can selectively apply instrumentation to different parts of the software based on diagnostic needs. This segmentation reduces overall system complexity by allowing focused instrumentation rather than requiring a monolithic instrumentation approach.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentEP2386956B1Conditional dynamic instrumentation of software in a specified transaction context
Publication Date: 2013.01.23 CA TECH INC
  • EP2386956B1 patent drawingFigure 1~2
  • EP2386956B1 patent drawingFigure 3A~3C
  • EP2386956B1 patent drawingFigure 3D~4A

AI summary

Techniques for analyzing software in which un-instrumented components can be discovered and conditionally instrumented during a runtime of the software. Initially, software such as an application can be configured with a baseline set of instrumented components such as methods. As the application runs, performance data gathered from the instrumentation may indicate that the performance of some methods is below expectations. To analyze this, any methods which are callable from a method at issue are discovered, such as by inspecting the byte code of loaded classes in a JAVA Virtual Machine (JVM). To limit and focus the diagnosis, the instrumentation which is added to the discovered components can be conditional, so that the instrumentation is executed only in a specified context. The context can involve, e.g., a specified sequence of components in which a discovered component is called, and/or transaction data in which a discovered component is called.