Adaptive Thread Pool Management for Server Resource Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Threads in computer systems can become 'hung' due to resource contention, subsystem errors, or network issues, leading to wasted processing time and overhead in monitoring and tracking.

Innovation Solution

Adaptive threading system that dynamically adjusts thread allocation based on performance metrics such as CPU utilization, wait counts, and memory usage, creating new thread pools or redistributing threads to prevent hang-ups and optimize resource utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If threads are allocated dynamically to user objects, then resource utilization is improved, but thread hang-up risk increases due to resource contention

Engineering Contradiction:
Improveresource utilizationVSAvoidthread hang-up risk
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system dynamically adjusts thread allocation based on system state and performance metrics. Thread pools are created, modified, or destroyed adaptively to match workload demands, allowing the system to optimize resource utilization while managing thread hang-up risks through continuous adaptation to changing conditions

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system monitors performance metrics including thread hang-up rates, CPU utilization, and memory usage. This feedback is used to adjust thread pool configurations, creating new pools or redistributing threads when hang-up risks are detected, thereby resolving the contradiction between dynamic allocation benefits and hang-up risks

Inventive Principle:
Principle #23Feedback

2Adaptability or versatility

If thread pools are created and destroyed dynamically, then system adaptability is improved, but system complexity increases

Engineering Contradiction:
Improvesystem adaptabilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system segments thread management into multiple independent thread pools rather than using a single monolithic pool. Each thread pool can be independently created, modified, or destroyed based on specific workload requirements, improving adaptability while managing complexity through modular organization

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system automatically manages thread pool creation, destruction, and thread redistribution based on monitored performance metrics without requiring manual intervention. This self-service capability provides high adaptability while the automated nature actually reduces operational complexity compared to manual management

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8127010B2System and method for adaptive allocation of threads to user objects in a computer system
Publication Date: 2012.02.28 MALIKIE INNOVATIONS LTD
  • US8127010B2 patent drawing
  • US8127010B2 patent drawing
  • US8127010B2 patent drawing

AI summary

A method for optimizing enterprise server resources in a computer system is described. The method comprises monitoring at least one metric of the computer system capable of indicating a performance level thereof; determining whether the performance level needs to be improved; and responsive to a determination that the performance level needs to be improved, implementing a best method to improve the performance level by adaptively manipulating one or more threads in a pool of threads in the computer system.