Shared Server Process Pool Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for optimizing the number of shared server processes in computer systems, such as database applications, often result in poor throughput and increased resource contention, particularly when using a shared server connection model, as they fail to dynamically adjust to changing workload conditions effectively.
Innovation Solution
A system that optimizes the number of shared server processes by creating a data array to store performance metrics and using two algorithms to iteratively adjust the number of processes based on observed performance metrics and their slopes, ensuring optimal resource allocation and minimizing queuing time.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a dedicated server process is created for each client connection, then the service quality for each client is improved, but the computer system resources such as memory and processor time are excessively consumed
Solution Approach 1:
Multiple client connections are merged to share a single server process. The patent implements a shared server connection model where a pool of server processes serves multiple clients through a dispatcher mechanism, reducing the total number of processes from one-per-client to a manageable pool that serves many clients collectively.
Solution Approach 2:
Server processes are made universal by enabling them to service multiple different client connections rather than being dedicated to a single client. The dispatcher dynamically assigns shared server processes to different client connections based on availability, making each server process capable of handling multiple client services.
2Quantity of substance
If the number of shared server processes is reduced, then the memory consumption is decreased, but the throughput of the computer system deteriorates
Solution Approach 1:
The system dynamically adjusts the number of shared server processes based on real-time workload conditions. The patent implements monitoring mechanisms that track system performance metrics and automatically adjust the pool size to optimize both resource utilization and throughput, preventing both over-provisioning and under-provisioning.
Solution Approach 2:
The system incorporates feedback loops that monitor throughput and resource utilization metrics, then use this information to adjust the number of shared server processes. Performance data from the system feeds back to the process management mechanism, enabling continuous optimization of the process pool size based on actual system conditions.
3Quantity of substance
If the number of shared server processes is optimized statically, then the resource allocation is improved, but the system cannot adapt to changing workload conditions
Solution Approach 1:
The system transitions from static to dynamic process management by continuously monitoring workload conditions and adjusting the number of shared server processes in real-time. The patent implements dynamic allocation mechanisms that respond to changing system conditions, enabling the system to adapt its resource allocation as workload demands evolve.
Data Source
AI summary
A system optimizes a number of shared server processes executing on a processor. The system creates, in a memory, a data array for storing a plurality of performance metric values, each associated with a number of shared server processes. The system selects a value for an optimized number of shared server processes according to a first procedure based on the performance metric, observes a performance metric associated with the selected optimized number, and stores, in the data array, the observed performance metric. The system repeats the selecting, observing and storing until at least a predetermined number of contiguous data values are stored in the data array. The system selects the value for the optimized number according to a second procedure based on a slope of the performance metric. The system observes the performance metric associated with the selected optimized number, and stores, in the data array, the observed performance metric.


