Virtual Machine Trace Module Integrating System Data

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Diagnosing problems in virtual machines is challenging due to the abstraction layer between the underlying system and application code, which complicates debugging and requires de-abstracting issues to identify root causes, often relying on custom debug modules that may incur performance degradation.

Innovation Solution

A method that involves opening a global data dictionary on a virtual machine, allocating program objects, initializing a system trace module, collecting and consolidating additional class data, and triggering the trace module in response to events to integrate low-level information with abstracted data for efficient troubleshooting.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If virtual machines use abstraction layers to isolate system internals from application code, then developer productivity and code portability improve, but diagnostic capability deteriorates

Engineering Contradiction:
Improvedeveloper productivityVSAvoiddiagnostic capability
Core Design Contradiction:
ProductivityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent introduces a trace module as an intermediary component that operates within the virtual machine environment to capture system-level data. This mediator bridges the gap between the abstracted application layer and the underlying system layer, enabling diagnostics without breaking the abstraction barrier. The trace module collects data from native backend abstractions and makes it available to developers through standardized interfaces.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the diagnostic data collection process into distinct components: the trace module that collects raw system data, the data dictionary that stores and organizes the data, and the consolidation mechanism that integrates system data with abstracted object data. This segmentation allows each component to operate independently while maintaining the overall diagnostic capability.

Inventive Principle:
Principle #1Segmentation

2Difficulty of detecting and measuring

If custom debug modules are used to diagnose virtual machine issues, then diagnostic capability improves, but system performance deteriorates

Engineering Contradiction:
Improvediagnostic capabilityVSAvoidsystem performance
Core Design Contradiction:
Difficulty of detecting and measuringVSProductivity

Solution Approach 1:

The patent implements preliminary action by pre-configuring the trace module and data dictionary structure before diagnostic needs arise. The system establishes the tracing infrastructure in advance, with predefined data collection points and storage structures, so that when diagnostics are needed, data is already captured and organized without requiring performance-intensive processing during the diagnostic event.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates a copy of the relevant system state data through the trace module without modifying the original system operations. The data dictionary stores copies of object data and system data, allowing diagnostic analysis to proceed on these copies while the virtual machine continues normal operations with minimal performance impact.

Inventive Principle:
Principle #26Copying

3Measurement precision

If comprehensive system data is collected for diagnostics, then diagnostic accuracy improves, but data complexity increases

Engineering Contradiction:
Improvediagnostic accuracyVSAvoiddata complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent merges two previously separate data sources into a unified structure: abstracted object data from the application layer and native system data from the backend. The data dictionary consolidation mechanism combines these data types into a single coherent view, allowing developers to access both levels of abstraction simultaneously without managing separate data systems, thereby reducing overall complexity while improving diagnostic accuracy.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The data dictionary is designed as a universal data structure that can store multiple types of data (abstracted object data and native system data) through a common interface. This multi-functional data structure handles diverse data formats and sources uniformly, simplifying the complexity of managing comprehensive diagnostic data while maintaining high diagnostic accuracy.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS11481240B2Capturing traces of virtual machine objects combined with correlated system data
Publication Date: 2022.10.25 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11481240B2 patent drawing
  • US11481240B2 patent drawing
  • US11481240B2 patent drawing

AI summary

A computer-implemented method includes opening, by a computer device, a global data dictionary on a virtual machine running on the computer device; running, by the computer device, a system defined class on the virtual machine; allocating, by the computer device, program objects that relate to the system defined class from an operating system onto the virtual machine; initializing, by the computer device, a system trace module on the virtual machine; collecting and storing in the global data dictionary, by the computer device, additional class data that was not originally abstracted, the additional class data being references to the allocated program objects; triggering, by the computer device, the system trace module in response to a trace event; identifying, by the computer device, particular ones of the program objects that relate to the trace event; and consolidating, by the computer device, the additional class data that corresponds to the particular ones of the program objects with abstracted object data that corresponds to the particular ones of the program objects, the additional class data being different from the abstracted object data.