Non-Invasive Thread Wait State Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data processing systems face challenges in determining why applications do not scale well with multiple processors, as existing methods for analyzing thread wait states are invasive and affect the value of profiling and analysis, leading to poor performance and potential degradation with increased workload.

Innovation Solution

A computer-implemented method and apparatus that selectively collects information about threads entering a wait state using a policy, obtaining call stack information and reasons for the wait state, and analyzing patterns to identify issues, thereby improving performance and scalability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If notification calls are generated for all wait and notification mechanisms to obtain thread wait state information, then information about thread wait states can be obtained, but the system becomes invasive and affects the value of profiling and analysis

Engineering Contradiction:
Improvethread wait state informationVSAvoidinvasiveness affecting profiling value
Core Design Contradiction:
Loss of informationVSObject-affected harmful factors

Solution Approach 1:

An intermediary profiling agent is introduced that acts as a bridge between the application code and the analysis tool. The agent intercepts notification calls and gathers thread wait state information without requiring invasive modifications to the original application code, thus preserving the value of profiling and analysis while still obtaining the necessary information.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The notification mechanism is segmented into multiple components: the original notification code in the application, the profiling agent that intercepts and processes notifications, and the analysis tool that receives processed information. This segmentation allows information collection without the monolithic invasiveness of the original approach.

Inventive Principle:
Principle #1Segmentation

2Loss of information

If code modifications are made to generate notifications and calls for wait state analysis, then thread wait state information can be collected, but the code complexity increases with additional callout, receive, and determination code

Engineering Contradiction:
Improvethread wait state informationVSAvoidcode complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The profiling agent serves as an intermediary that encapsulates the complexity of notification generation, reception, and processing. Instead of scattering complex notification code throughout the application, all complexity is concentrated in the separate agent module, keeping the original application code simple and maintainable.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The profiling agent creates copies of notification information rather than requiring the original code to directly generate and process all notifications. This copying approach allows the agent to gather information without the original code needing to be modified to handle complex notification logic.

Inventive Principle:
Principle #26Copying

3Productivity

If additional processors are added to improve application scaling, then processing capacity increases, but performance may actually degrade if the application does not scale well

Engineering Contradiction:
Improveprocessing capacityVSAvoidperformance consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system implements feedback mechanisms that monitor thread wait states and provide information about application scaling behavior. This feedback allows developers to identify bottlenecks and optimize the application to scale properly across multiple processors, ensuring that increased processing capacity translates to improved performance rather than degradation.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9323578B2Analyzing wait states in a data processing system
Publication Date: 2016.04.26 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9323578B2 patent drawing
  • US9323578B2 patent drawing
  • US9323578B2 patent drawing

AI summary

A computer implemented method, apparatus, and computer usable program code for collecting information about threads. A thread entering a wait state is detected. Information is selectively obtained about a set of threads in the wait state using a policy to produce an action in response to the thread entering the wait state. A history containing the collected data may be saved and used to determine changes to patterns.