Self-Tuned Threading Model for Application Servers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing application servers face challenges in determining the optimal number of concurrent threads to handle large numbers of users efficiently, as current methods rely heavily on administrator skill and are not adaptable to varying environments, leading to suboptimal performance in real-life situations.

Innovation Solution

A self-tuned threading model that uses a priority queue to dynamically adjust the number of threads based on workload, allowing entities to have proportional thread usage allocations and penalizing excessive usage, thereby ensuring balanced thread distribution and automatic thread pool sizing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If the number of threads greatly exceeds the number of processors, then requests are almost immediately fed into threads, but the requests are not quickly taken up by the processors

Engineering Contradiction:
Improverequest processing speedVSAvoidthread idle time
Core Design Contradiction:
SpeedVSLoss of energy

Solution Approach 1:

The patent implements dynamic thread pool sizing where the number of threads is automatically adjusted based on current workload conditions. The system monitors processor utilization and queue depth, increasing thread count when workload increases and decreasing it when workload decreases, ensuring threads are actively processing requests rather than remaining idle

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system continuously monitors performance metrics including processor utilization, queue depth, and thread activity. This feedback is used to automatically adjust the thread pool size, creating a closed-loop control system that optimizes the balance between having enough threads to process requests quickly and having enough processors to utilize those threads effectively

Inventive Principle:
Principle #23Feedback

2Adaptability or versatility

If a static thread pool configuration is used, then the system is simple to configure, but it cannot adapt to varying runtime environments and workloads

Engineering Contradiction:
Improveenvironment adaptabilityVSAvoidthread management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system performs self-tuning of the thread pool configuration by automatically monitoring its own performance metrics and adjusting the number of threads accordingly. The thread pool management includes built-in intelligence to detect workload patterns and optimize thread count without requiring external intervention or complex configuration, making the system adaptable while maintaining simplicity

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent dynamically changes the thread pool size parameter based on monitored workload conditions. The system adjusts this key parameter in response to varying runtime environments, transforming a static configuration into a dynamic one that adapts to changing conditions without requiring complex manual reconfiguration

Inventive Principle:
Principle #35Parameter changes

3Manufacturing precision

If manual thread configuration is performed, then specific performance targets can be achieved, but the process is heavily dependent on administrator skill and is not satisfactory for varied real-life environments

Engineering Contradiction:
Improveperformance optimization precisionVSAvoidconfiguration ease
Core Design Contradiction:
Manufacturing precisionVSEase of operation

Solution Approach 1:

The system replaces manual administrator configuration with automated self-tuning capabilities. The thread pool management includes built-in intelligence that monitors performance metrics and automatically adjusts thread count to optimize performance, eliminating the need for skilled manual configuration while maintaining high performance across varied real-life environments

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS7657892B2System and method for application server with self-tuned threading model
Publication Date: 2010.02.02 ORACLE INT CORP
  • US7657892B2 patent drawing
  • US7657892B2 patent drawing
  • US7657892B2 patent drawing

AI summary

A system and method for application server with self-tuned threading model. A server queue is used as a priority scheme, including a number of entries therein associated with received requests, and which allows the entries to have expressed priorities or share values, instead of simply the number of threads. Flexibility is retained to express the threads in raw numbers whenever this might be desired, or to express constraints on the number of threads to be made available.