Dynamic Thread Pool Sizing in Distributed Data Grids

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing thread pool management systems in distributed data grids face challenges in dynamically adjusting thread pool sizes in response to changing workloads and processor availability, leading to inefficiencies in resource utilization and performance.

Innovation Solution

A scalable thread pool system that dynamically resizes based on measurements of throughput and worker thread utilization, using a method that adds or removes worker threads to optimize performance, while preventing settling on local maximum throughput.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If thread pool size is increased to handle higher workload, then throughput is improved, but resource utilization efficiency deteriorates

Engineering Contradiction:
ImprovethroughputVSAvoidresource utilization efficiency
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The thread pool size is made dynamic rather than static, allowing the system to adjust the number of worker threads based on current workload conditions. The resizing job continuously monitors throughput and calculates optimal thread pool size, adding or removing threads as needed to match actual demand, thereby improving both throughput and resource utilization efficiency.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements a feedback mechanism where the resizing job monitors throughput metrics and uses this information to determine whether to increase or decrease thread pool size. The feedback loop compares current throughput against historical data and adjusts thread pool configuration accordingly, ensuring optimal resource utilization while maintaining high productivity.

Inventive Principle:
Principle #23Feedback

2Loss of energy

If thread pool size is decreased to improve resource utilization, then resource utilization efficiency is improved, but throughput deteriorates

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidthroughput
Core Design Contradiction:
Loss of energyVSProductivity

Solution Approach 1:

The system dynamically adjusts thread pool size based on real-time workload assessment. When workload decreases, threads are removed to improve resource utilization; when workload increases, threads are added to maintain throughput. This dynamic adaptation resolves the contradiction by making thread pool size responsive to actual system conditions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the parameter of thread pool size based on monitored performance metrics. By calculating the optimal thread pool size using throughput data and workload characteristics, the system adjusts this parameter to balance resource utilization efficiency and throughput, preventing both over-provisioning and under-provisioning of threads.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If frequent resizing adjustments are made to optimize throughput, then responsiveness to workload changes is improved, but system stability deteriorates

Engineering Contradiction:
Improveresponsiveness to workload changesVSAvoidsystem stability
Core Design Contradiction:
Adaptability or versatilityVSStability of the object's composition

Solution Approach 1:

The system performs resizing operations periodically rather than continuously, using a scheduled resizing job that executes at defined intervals. This periodic approach allows the system to respond to workload changes while maintaining stability, as adjustments are made at controlled frequencies rather than in response to every fluctuation.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The system applies partial adjustments to thread pool size rather than extreme changes, modifying the thread count by calculated amounts based on throughput analysis. This partial action approach prevents over-reacting to temporary workload variations, thereby maintaining system stability while still achieving responsiveness to genuine workload changes.

Inventive Principle:
Principle #16Partial or excessive action

4Productivity

If thread pool size is increased to handle peak workload, then productivity is improved, but device complexity increases

Engineering Contradiction:
ImprovethroughputVSAvoidthread pool management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The thread pool management system is self-service, with the resizing job automatically monitoring throughput, calculating optimal thread pool size, and performing resizing operations without external intervention. This automation reduces the operational complexity of managing large thread pools while maintaining high productivity, as the system manages itself based on observed performance metrics.

Inventive Principle:
Principle #25Self-service

Data Source

PatentEP3198430B1System and method for supporting dynamic thread pool sizing in a distributed data grid
Publication Date: 2021.10.20 ORACLE INT CORP
  • EP3198430B1 patent drawingFigure 1
  • EP3198430B1 patent drawingFigure 2
  • EP3198430B1 patent drawingFigure 3A~3B

AI summary

A system and method supports dynamic thread pool sizing suitable for use in multi-threaded processing environment such as a distributed data grid. Dynamic thread pool resizing utilizes measurements of thread pool throughput and worker thread utilization in combination with analysis of the efficacy of prior thread pool resizing actions to determine whether to add or remove worker threads from a thread pool in a current resizing action. Furthermore, the dynamic thread pool resizing system and method can accelerate or decelerate the iterative resizing analysis and the rate of worker thread addition and removal depending on the needs of the system. Optimizations are incorporated to prevent settling on a local maximum throughput. The dynamic thread pool sizing/resizing system and method thereby provides rapid and responsive adjustment of thread pool size in response to changes in work load and processor availability.