Thread-Based Dynamic Data Collection for Software Error Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for analyzing software application execution logs are inefficient in identifying the source of errors and implementing corrective actions, as they collect irrelevant data and lack thread-specific monitoring.

Innovation Solution

A system and method for dynamically collecting data during program execution in multiple threads, initiating data collectors only when an exception occurs in a specific thread to gather thread-specific data, thereby simplifying error analysis by ignoring irrelevant data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data collectors are continuously active to monitor all program execution, then complete data coverage is achieved, but system overhead and resource consumption increase

Engineering Contradiction:
Improveerror detection capabilityVSAvoidsystem overhead
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The data collector is implemented as a dynamic component that changes its state based on runtime conditions. It transitions from an inactive state to an active state only when an exception is detected in a thread, allowing the system to adapt its monitoring intensity to actual error conditions rather than maintaining constant high-level monitoring

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The monitoring system triggers data collection automatically based on self-detected exception conditions. When an exception occurs in a thread, the system itself initiates the data collection process for that specific thread without requiring external intervention or continuous active monitoring of all threads

Inventive Principle:
Principle #25Self-service

2Loss of information

If data is collected from all threads simultaneously, then comprehensive execution data is obtained, but data analysis complexity increases

Engineering Contradiction:
Improveexecution data completenessVSAvoiddata analysis complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The system extracts and collects data only from the specific thread where an exception occurred, rather than collecting data from all threads. This selective extraction removes irrelevant data from the collection process, reducing the total volume of data that requires analysis while preserving the critical error-related information

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The data collection approach applies different quality levels to different threads based on their relevance to the error. The thread containing the exception receives full data collection attention with detailed monitoring, while other threads receive minimal or no data collection, creating a localized high-quality analysis focus where needed

Inventive Principle:
Principle #3Local quality

3Measurement precision

If thread-specific data collection is implemented only after exception detection, then data collection precision is improved, but response time to gather diagnostic information is delayed

Engineering Contradiction:
Improvethread-specific data accuracyVSAvoiddiagnostic information gathering time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system prepares the data collection mechanism in advance by establishing the infrastructure and data collector components before exceptions occur. When an exception is detected, the pre-prepared data collector can immediately activate and begin collecting thread-specific data without delay, as the framework is already in place

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9916192B2Thread based dynamic data collection
Publication Date: 2018.03.13 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9916192B2 patent drawing
  • US9916192B2 patent drawing
  • US9916192B2 patent drawing

AI summary

Dynamically collecting data pertaining to a program execution. A method can include monitoring execution of the program in a plurality of threads and, responsive to identifying an exception triggered by the program execution in a first of the plurality of threads, initiating at least one data collector to collect data exclusively relevant to the program execution in the first thread.