Dynamic Application Tracing in Virtual Machines

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current serviceability and observability mechanisms for enterprise-level computer systems applications in virtual machine environments are insufficient for diagnosing and resolving application problems at runtime, often resulting in high overhead and unpredictable behavior.

Innovation Solution

A dynamic application tracing method that allows for the insertion of user-specified instrumentation code at specific probe points within an application, enabling safe and low-overhead troubleshooting without requiring application restarts or changes to the execution environment, using a platform-independent instrumentation language like JTrace.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If performance tools are used to monitor applications deployed within virtual machine processes, then monitoring capability is provided, but the virtual machine processes must be restarted with a changed execution environment

Engineering Contradiction:
Improvemonitoring capabilityVSAvoidapplication restart requirement
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent applies preliminary action by preparing and loading the instrumentation agent into the virtual machine process before the application needs monitoring. The agent is pre-configured with probe points and instrumentation code, so when monitoring is initiated, the application can be instrumented without restart. This resolves the contradiction by performing the environment change preparation in advance, eliminating the need for application restart while maintaining monitoring capability.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If performance tools are used to monitor applications, then monitoring is enabled, but high performance overhead is imposed causing monitored applications to run substantially slower

Engineering Contradiction:
Improvemonitoring capabilityVSAvoidapplication execution speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies local quality by instrumenting only specific probe points within the application that are relevant to the monitoring objectives, rather than instrumenting the entire application. The instrumentation agent selectively inserts monitoring code at designated locations based on user specifications. This localized approach maintains monitoring capability while minimizing the performance overhead to only those specific code paths that require observation.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent applies partial action by enabling monitoring of only the portions of the application that are necessary for diagnostic purposes. Users can specify particular classes, methods, or probe points to monitor, rather than monitoring the entire application. This partial monitoring approach provides sufficient diagnostic information while keeping the performance impact minimal and focused only on the relevant application sections.

Inventive Principle:
Principle #16Partial or excessive action

3Adaptability or versatility

If aspect-oriented programming is used to allow unrestricted modification of application code, then comprehensive monitoring is possible, but unpredictable or undesired behavior such as data corruption, application hangs or crashes may result

Engineering Contradiction:
Improvemonitoring flexibilityVSAvoidapplication stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent applies the intermediary principle by introducing an instrumentation agent that acts as a mediator between the user and the application code. The agent provides a controlled interface for inserting instrumentation code at probe points, enforcing safety rules and validation protocols. This intermediary layer enables comprehensive monitoring flexibility while preventing direct unrestricted modification that could cause data corruption or application crashes, thus maintaining application stability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent applies beforehand cushioning by implementing validation and safety checks before instrumentation code is inserted into the application. The instrumentation agent verifies the correctness and safety of probe point specifications and instrumentation code generation prior to deployment. This preliminary validation prevents unsafe modifications that could lead to application hangs or crashes, while still allowing comprehensive monitoring through validated instrumentation points.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

Data Source

PatentUS7818721B2Dynamic application tracing in virtual machine environments
Publication Date: 2010.10.19 ORACLE AMERICAN INC
  • US7818721B2 patent drawing
  • US7818721B2 patent drawing
  • US7818721B2 patent drawing

AI summary

A method for dynamic application tracing in virtual machine environments comprises receiving an instrumentation request that includes an identification of a probe point at which instrumentation code is to be inserted within an application. The method may further comprise making a determination whether the instrumentation code meets one or more acceptance criteria. If the instrumentation code is found to be acceptable, the method may further comprise inserting the instrumentation code at the probe point within the application while the application is executing within a virtual machine, and obtaining information indicative of application state from an execution of the instrumentation code when the probe point is reached during application execution.