Application Server Thread Self-Healing Using Snapshot Matching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Stuck threads in application servers consume computing resources and slow down middleware operations, making detection and resolution complex due to various potential causes such as administrative jobs, memory fragmentation, or disk space issues.

Innovation Solution

A predictive self-healing system that takes periodic snapshots of performance parameters, identifies stuck threads, and executes scripts from a repository of solutions based on matched scenarios to resolve the issues, thereby preemptively addressing resource consumption and performance degradation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If periodic snapshots of performance parameters are taken and compared with a repository of previous stuck thread scenarios, then the accuracy of stuck thread detection and solution matching is improved, but the processing time and computational resources required are increased

Engineering Contradiction:
Improvedetection accuracyVSAvoidprocessing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system pre-captures performance snapshots at periodic intervals before stuck threads occur, and pre-builds a repository of stuck thread scenarios with their corresponding snapshots. When a stuck thread is detected, the system can quickly retrieve and compare against pre-captured snapshots rather than collecting data in real-time, significantly reducing detection and diagnosis time while maintaining high accuracy.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates copies of performance snapshots at different time points and stores them in a repository. Instead of analyzing live system state continuously, the system compares captured snapshot copies against the repository of previous scenario snapshots, enabling fast pattern matching without interfering with real-time system operation or consuming excessive processing resources.

Inventive Principle:
Principle #26Copying

2Productivity

If a repository of previous stuck thread scenarios and healing scripts is maintained, then the speed of resolving stuck threads is improved, but the memory resources required are increased

Engineering Contradiction:
Improveresolution speedVSAvoidmemory resources
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The system extracts only the essential diagnostic information from full system snapshots and stores it in the repository. Instead of storing complete system state data which would consume excessive memory, the system extracts key performance parameters and snapshot metadata that are sufficient for pattern matching, significantly reducing memory requirements while maintaining the ability to quickly identify and resolve stuck thread scenarios.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If the system automatically executes healing scripts based on matched scenarios, then the effectiveness of stuck thread resolution is improved, but the risk of incorrect automation and system errors is increased

Engineering Contradiction:
Improveresolution effectivenessVSAvoidautomation errors
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The system implements a feedback mechanism where the results of executing healing scripts are monitored and evaluated. If a script execution does not resolve the stuck thread or causes adverse effects, the system can detect this through continued monitoring of performance parameters and adjust its behavior accordingly. This feedback loop reduces the risk of harmful automation by enabling the system to learn from execution outcomes and avoid repeating ineffective or harmful actions.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11144369B2Preemptive self-healing of application server hanging threads
Publication Date: 2021.10.12 BANK OF AMERICA CORP
  • US11144369B2 patent drawing
  • US11144369B2 patent drawing
  • US11144369B2 patent drawing

AI summary

A system includes an application server, a memory, and a processor. The application server runs one or more software threads. The memory stores snapshots of the system performance of the application server taken at periodic time intervals, a repository of previous stuck thread scenarios, and a plurality of thread healing scripts. The processor monitors server performance parameters, determines that a thread running on the application server is stuck, retrieves a set of snapshots of the system performance taken before the moment when it was determined that the thread is stuck, identifies from among the retrieved set of snapshots the oldest snapshot with a server performance parameter that exceeds a threshold, compares the server performance parameters in the identified oldest snapshot with the repository of previous stuck thread scenarios to identify a closest match, identifies a script for resolving the matched stuck thread scenario, and executes the identified script.