Event Data Pruning and Clustering for Hang Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Analyzing large volumes of event data generated by multi-threaded processes is challenging, particularly when identifying the cause of process hangs, as it requires sifting through vast amounts of data over time, making it difficult for developers to find relevant information within a manageable timeframe.

Innovation Solution

The implementation of 'prune-and-prioritize' functionality that condenses or excludes event data, clusters it using a similarity metric, and ranks clusters for inspection, allowing developers to focus on organized and relevant data, reducing the amount of data to be examined from tens of thousands of stacks to a few hundred clusters.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If developers manually sift through large volumes of event data to identify relevant information, then comprehensive analysis is possible, but the time required for analysis increases significantly

Engineering Contradiction:
Improveanalysis completenessVSAvoidanalysis time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent replaces manual mechanical sifting of event data with automated computational processing. The system uses machine learning models and algorithms to automatically analyze, cluster, and prioritize event data, substituting human manual inspection with automated computational systems that can process large volumes of data rapidly while maintaining or improving analysis completeness.

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

Solution Approach 2:

The patent introduces an intermediary automated analysis system between the raw event data and the developer. This intermediary system performs preliminary filtering, clustering, and prioritization of event data, presenting only the most relevant information to developers. This mediator reduces the time developers spend on analysis while preserving comprehensive analysis capabilities through automated preprocessing.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of information

If all event data is retained for analysis, then complete information is available, but data management complexity and processing burden increase

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

Solution Approach 1:

The patent extracts and retains only the most relevant event data for analysis using automated filtering and prioritization algorithms. The system identifies and extracts key events, patterns, and anomalies from the full dataset, storing and presenting only this extracted subset to developers. This reduces data management complexity while preserving essential information through intelligent selection rather than retaining all raw data.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent segments event data into meaningful clusters and categories using machine learning algorithms. By dividing the large volume of event data into organized segments based on similarity, temporal patterns, or relevance criteria, the system reduces processing complexity while maintaining information completeness within each segment. Developers can then analyze segmented data more efficiently.

Inventive Principle:
Principle #1Segmentation

3Reliability

If event data from multiple program instances over extended periods is collected, then comprehensive debugging information is obtained, but locating relevant data becomes increasingly difficult

Engineering Contradiction:
Improvedebugging accuracyVSAvoiddata location ease
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent replaces manual searching and locating of relevant event data with automated computational methods. Machine learning models automatically scan, index, and retrieve relevant data from multiple program instances and time periods, substituting the manual mechanical process of sifting through data with automated electronic search and retrieval systems that maintain debugging accuracy while improving ease of operation.

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

Solution Approach 2:

The patent performs preliminary organization, tagging, and indexing of event data from multiple program instances before analysis is needed. By pre-processing and structuring the data in advance using automated systems, the patent makes subsequent data location and retrieval much easier while preserving comprehensive debugging information. This preliminary action reduces the operational burden when debugging is required.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11880270B2Pruning and prioritizing event data for analysis
Publication Date: 2024.01.23 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11880270B2 patent drawing
  • US11880270B2 patent drawing
  • US11880270B2 patent drawing

AI summary

Dump file content and other event data is pruned and prioritized to assist analysis of hangs, crashes, and other circumstances. An event data pruner condenses or excludes certain event data. A cluster creator creates clusters from pruned and vectorized event data, using a clustering algorithm and a similarity metric, without any prior specification of the desired number of clusters. A cluster ranker ranks clusters according to event data volume and thread importance, thus prioritizing the event data for inspection. A results presenter configures a user interface to present ranked clusters, their associated data, data reduction statistics, regression analysis results, and other data reduction processing results. Thus, the innovative functionality assists analysis and prioritized inspection of event data by an analyst, surfacing organized event data that is relevant to the circumstance under investigation, or supporting comparison of clusters from before and after a change in the circumstance, or doing both.