Byte-Code Instrumentation Filtering for Runtime Data Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Comprehensive instrumentation in computer programs often violates modern code-development strategies, leading to inefficiencies and errors due to the need for manual insertion of instrumentation routines, which is time-consuming and error-prone, and results in excessive data collection that is redundant and challenging to store.

Innovation Solution

Implementing byte-code instrumentation using aspect-oriented programming (AOP) to automatically filter data at runtime, reducing redundant data logging through binning and filtering techniques, allowing only valuable data to be logged, thereby addressing the inefficiencies and storage challenges.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If comprehensive byte-code instrumentation is implemented to collect detailed execution data, then data collection completeness is improved, but data volume and storage requirements increase significantly

Engineering Contradiction:
Improvedata collection completenessVSAvoiddata volume
Core Design Contradiction:
Loss of informationVSQuantity of substance

Solution Approach 1:

The patent extracts and removes redundant information from the collected execution data before storage. The filtering mechanism identifies and eliminates duplicate log entries, keeping only representative samples of repeated execution patterns, thereby reducing data volume while preserving essential information.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system discards redundant data entries that represent repeated execution patterns, recovering only the essential information needed for analysis. By identifying when log entries are duplicates of previous patterns, the system selectively discards redundant copies while maintaining the representative sample.

Inventive Principle:
Principle #34Discarding and recovering

2Measurement precision

If manual insertion of instrumentation routines is used to ensure precise data collection, then measurement precision is improved, but implementation time and error risk increase

Engineering Contradiction:
Improvedata collection precisionVSAvoidimplementation time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system performs automatic instrumentation insertion and configuration without requiring manual programmer intervention. The byte-code instrumentation is automatically generated and integrated into the target program, eliminating time-consuming manual insertion while maintaining precise data collection capabilities.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The instrumentation code is prepared and configured in advance through automated processes before execution. The system pre-processes the target program to insert appropriate instrumentation points, ensuring measurement precision is achieved without requiring manual intervention during the actual data collection process.

Inventive Principle:
Principle #10Preliminary action

3Loss of information

If comprehensive data logging is implemented to capture all execution details, then information completeness is improved, but data analysis complexity increases

Engineering Contradiction:
Improveinformation completenessVSAvoiddata analysis complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The system extracts and retains only the most relevant execution information for analysis purposes. By filtering out redundant and less significant data during the logging process, the system reduces analysis complexity while maintaining completeness of essential information.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Different levels of logging detail are applied to different execution contexts. The system uses filtering rules to determine which execution paths warrant detailed logging versus which can use summarized or omitted reporting, optimizing the balance between information completeness and analysis complexity.

Inventive Principle:
Principle #3Local quality

4Quantity of substance

If filtering is applied to reduce logged data volume, then storage efficiency is improved, but risk of losing valuable information increases

Engineering Contradiction:
Improvestored data volumeVSAvoidinformation loss risk
Core Design Contradiction:
Quantity of substanceVSLoss of information

Solution Approach 1:

The filtering mechanism uses feedback from analysis of execution patterns to refine what data is retained. By monitoring which types of execution events are most valuable for analysis, the system adjusts its filtering criteria to preserve critical information while discarding redundant data, minimizing information loss risk.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system applies selective filtering that retains more data than strictly minimal requirements would demand, keeping representative samples of various execution patterns. This partial retention strategy ensures that even if some filtering occurs, valuable information is preserved through over-sampling of key execution scenarios.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS8954935B2Method and system that filters byte-code instrumentation at the instrumentation level
Publication Date: 2015.02.10 VMWARE INC
  • US8954935B2 patent drawing
  • US8954935B2 patent drawing
  • US8954935B2 patent drawing

AI summary

The current application is directed to crosscutting functionalities, including byte-code instrumentation, error logging, and other such crosscutting functionalities. These crosscutting functionalities generally violate, or run counter to, modern code-development strategies and programming-language features that seek to partition logic into hierarchically organized compartments and modules with related functionalities, attribute values, and other common features. In particular, the current application is directed to byte-code instrumentation introduced into a computer program for collecting data, such as execution traces, elapsed times for routine execution, and other information at run time for logging and subsequently manual, semi-automatic, or automatic analysis. The current application is particularly directed to byte-code instrumentation that automatically filters collected data in order to log only data having greatest value for subsequent analysis.