Parallel Memory Dump Capture via Dynamic Thread Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Contemporary memory dump processes in software debugging are inefficient due to serial data capture within each address space using a single thread, leading to elongated debug data capture times and limited storage constraints, which impact application availability and the ability to diagnose computer errors effectively.

Innovation Solution

Implementing prioritized and parallel data capture using multiple threads within a single address space, dynamically determining the number of threads based on priority levels and available resources to capture data in parallel, thereby reducing memory dump capture times and eliminating storage size limitations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If serial data capture using a single thread is used within each address space, then the system complexity is low and ease of operation is maintained, but the data capture time is significantly elongated and productivity is reduced

Engineering Contradiction:
Improvedata capture speedVSAvoidthread management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the data capture workload into multiple segments by creating multiple threads, each responsible for capturing data from different regions or aspects of the address space. This segmentation enables parallel processing of data capture tasks, significantly improving productivity while managing complexity through structured division of labor among threads

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from single-threaded serial processing to multi-threaded parallel processing by adding the dimension of concurrency. Multiple threads operate simultaneously to capture data from the same address space, transforming the temporal dimension of data capture from sequential to parallel execution, thereby dramatically improving capture speed

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Loss of time

If more threads are assigned to parallel data capture, then the data capture time is reduced and productivity improves, but the resource consumption increases and system stability may be compromised

Engineering Contradiction:
Improvememory dump capture timeVSAvoidsystem stability during capture
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The patent implements dynamic thread management where the number of threads is adjusted based on system conditions, priority levels of the generating application, and available resources. This dynamic approach allows the system to optimize between capture speed and stability by adapting thread count to current system state, preventing resource exhaustion while minimizing capture time

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of thread count based on priority levels assigned to different applications or data capture tasks. High-priority tasks receive more threads for faster capture, while lower-priority tasks use fewer threads to conserve resources. This parameter adjustment resolves the contradiction by matching resource allocation to actual needs

Inventive Principle:
Principle #35Parameter changes

3Quantity of substance

If the storage capacity for debug data is increased to accommodate larger memory dumps, then the ability to diagnose complex errors improves, but the storage resource consumption increases and may lead to resource exhaustion

Engineering Contradiction:
Improvestorage capacity for debug dataVSAvoidavailable storage resources
Core Design Contradiction:
Quantity of substanceVSLoss of substance

Solution Approach 1:

The patent applies local quality by capturing and storing data at different priority levels and granularities. Critical error data is captured in full detail with high storage allocation, while less critical data uses compressed or summarized storage formats. This localized differentiation of storage quality optimizes the use of storage resources while maintaining diagnostic capability for important errors

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11379290B2Prioritizing and parallelizing the capture of data for debugging computer programs
Publication Date: 2022.07.05 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11379290B2 patent drawing
  • US11379290B2 patent drawing
  • US11379290B2 patent drawing

AI summary

Aspects of the invention include receiving a request to obtain data located in an address space to diagnose a computer error. It is determined whether a threshold number of resources are available to obtain the data. Based on determining that the threshold number of resources is available to obtain the data, a priority level of the computer program is assessed. A number of threads to assign to a workload to obtain the data from the address space is determined based at least in part on the priority level of the computer program. The determined number of threads are assigned to the workload. The workload is divided into a number of parallel units equal to the number of threads assigned to the workload. The parallel units of the workload are executed by the assigned threads to capture the data in the address space. The captured data is stored.