Automated Heap Dump Analysis for Out-of-Memory Error Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In cloud computing environments, manually processing and analyzing heap dumps to identify and debug errors is tedious and inefficient, especially since a single issue can propagate to numerous application servers, leading to duplicate errors.

Innovation Solution

A method and system that automatically process and analyze heap dumps using machine learning to identify suspect classes and duplicate out-of-memory errors by rebuilding object dependencies, calculating memory usage, and utilizing suspect identification scores to compare signatures across heap dumps.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If manual processing and analysis of heap dumps is performed, then developers can identify and debug errors, but the process becomes tedious and time-consuming

Engineering Contradiction:
Improveerror detection accuracyVSAvoiddebugging time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system enables self-service error detection by automatically analyzing heap dumps without requiring manual developer intervention. The error detection system autonomously processes heap dump data, identifies suspect classes, and generates error reports, allowing the system to serve itself in the debugging process.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces the mechanical manual analysis process with an automated computational system. Instead of developers manually examining heap dumps, the system uses automated algorithms to process heap dump data, calculate memory usage statistics, and identify errors, substituting human mechanical analysis with automated computational analysis.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Measurement precision

If each heap dump is processed individually, then detailed analysis is possible, but the same issue propagates to numerous application servers causing duplicate errors

Engineering Contradiction:
Improveerror analysis depthVSAvoiderror processing efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The system merges the analysis of multiple heap dumps by collecting heap dump data from numerous application servers and processing them together. The error detection system combines heap dump information across servers, identifies common suspect classes, and consolidates duplicate errors into single error reports, merging individual analyses into a comprehensive multi-server error profile.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The error detection system performs multiple functions simultaneously: it processes individual heap dump analysis while also performing cross-server error correlation, duplicate detection, and aggregated reporting. This multi-functional approach allows the system to maintain detailed analysis capabilities while efficiently handling errors across numerous application servers.

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

3Productivity

If automated error identification is implemented, then debugging time is reduced, but system complexity increases

Engineering Contradiction:
Improvedebugging efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system segments the complex error detection process into distinct modular components: heap dump data collection, suspect class identification, memory usage calculation, duplicate error detection, and error reporting. Each module performs a specific function, making the overall complex system manageable through functional segmentation and independent module development.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9201760B2Method and system for identifying errors in code
Publication Date: 2015.12.01 SALESFORCE INC
  • US9201760B2 patent drawing
  • US9201760B2 patent drawing
  • US9201760B2 patent drawing

AI summary

A method for identifying errors in code is provided. The method may include rebuilding object dependencies from a heap dump, calculating memory usage of each object, identifying top consumers of memory by object class, analyzing how much memory each class consumes with respect to how much other classes consume, building a corpus of data that may be used in a progressive machine learning algorithm, and identifying suspect classes. Additionally, the suspect classes and the memory usage statistics of the suspect classes may then be used as an identifying signature of the associated out of memory error. The identifying signature of the associated out of memory error may then be used to compare with the signatures of other out of memory occurrences for identifying duplicate error occurrences.