Dynamic Per-Method Probing for Runtime Overhead Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing system-wide observation tools like Systemtap are limited to monitoring C/C++ runtime and often result in high overhead due to hitting probe points for every method call, making it inefficient for inspecting applications written in other languages without the ability to selectively target specific methods and inspect primitive method parameters.

Innovation Solution

The method involves dynamically probing specific target methods in an application by modifying them to include a call to a helper method that passes a rulename to a native method in a shared object library, allowing for selective activation of probe points only when the target method is invoked, thereby reducing unnecessary overhead and enabling inspection of method parameters.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If system-wide observation tools like Systemtap are used to monitor applications, then monitoring capability is provided, but overhead is high due to hitting probe points for every method call

Engineering Contradiction:
Improvemonitoring capabilityVSAvoidoverhead
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent segments the monitoring approach by introducing a language-specific agent layer between the system-wide tool and the application. This agent selectively activates probe points only for targeted methods in the specific language runtime, rather than monitoring all method calls system-wide. The segmentation divides the monitoring function into: (1) system-wide tool providing infrastructure, (2) language-specific agent providing selective activation, and (3) application providing monitored functionality.

Inventive Principle:
Principle #1Segmentation

2Loss of information

If probe points are activated for every method call, then comprehensive monitoring is achieved, but efficiency decreases due to unnecessary overhead

Engineering Contradiction:
Improvecomprehensive monitoringVSAvoidefficiency
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The patent applies local quality by making the monitoring behavior language-specific and method-specific rather than uniform across all applications. The language-specific agent configures probe point activation based on the particular language runtime and the specific methods of interest, creating localized monitoring quality where probe points are activated only where needed (specific methods in specific languages) rather than universally for all method calls.

Inventive Principle:
Principle #3Local quality

3Reliability

If existing tools are used to monitor applications, then monitoring is possible, but the ability to selectively target specific methods and inspect primitive method parameters is limited

Engineering Contradiction:
Improvemonitoring functionalityVSAvoidselective targeting capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent introduces a language-specific agent as an intermediary component between the system-wide observation tool and the application. This intermediary agent provides the selective targeting capability by understanding the specific language runtime and method structures, translating high-level monitoring requests into language-appropriate probe point activations, and enabling inspection of primitive method parameters specific to that language's runtime environment.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9934128B2Dynamic per-method probing during runtime
Publication Date: 2018.04.03 RED HAT INC
  • US9934128B2 patent drawing
  • US9934128B2 patent drawing
  • US9934128B2 patent drawing

AI summary

A system, method, and techniques for dynamically probing a method are provided. An example method includes identifying a target method to probe in an application. The method also includes modifying the target method to include a call to a helper method that passes a rulename to a native method in a shared object library. The native method includes a marker associated with a probe point inserted in the application at a location relative to the target method, and the rulename identifies the marker associated with the probe point. The method further includes during execution of the application on a computing device, detecting when the target method is invoked. The method also includes when the method is invoked, passing the rulename to the native method in the shared object library.