Non-Invasive Thread Wait State Analysis
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
Data Source
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.


