Adaptive Consumer Thread Pool for Dynamic Message Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Consumer applications face challenges in optimally allocating threads from their thread pool to process messages efficiently, often leading to underutilization or oversaturation, due to the difficulty in determining the optimal thread quantity, which varies with system conditions and downstream system utilization.

Innovation Solution

A system and method that dynamically allocates threads based on real-time performance metrics, such as throughput and latency, increasing or decreasing the thread quantity when these metrics meet or exceed predetermined thresholds, thereby adapting to changing system conditions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a fixed quantity of threads is allocated to process messages, then the system structure is simple and easy to manage, but the system cannot adapt to changing load conditions leading to underutilization or oversaturation

Engineering Contradiction:
Improvethread allocation adaptabilityVSAvoidthread pool management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic thread pool management where the quantity of threads is adjusted in real-time based on system performance metrics. The thread pool transitions from a static fixed-size structure to a dynamic adaptive structure that automatically scales thread quantity according to actual processing needs, resolving the contradiction between adaptability and complexity through automated feedback control

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system continuously monitors performance metrics (throughput, latency, thread utilization) and uses this feedback to automatically adjust thread pool size. When metrics indicate underutilization, threads are reduced; when metrics show processing bottlenecks, threads are increased. This closed-loop feedback mechanism enables adaptive thread allocation without manual intervention, balancing adaptability with manageable complexity

Inventive Principle:
Principle #23Feedback

2Productivity

If more threads are allocated to process messages in parallel, then message processing throughput increases, but system resource consumption and complexity increase

Engineering Contradiction:
Improvemessage processing throughputVSAvoidthread quantity
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The thread pool size is made dynamic rather than static, allowing the system to optimize the balance between throughput and resource consumption. The system automatically increases thread quantity when throughput requirements demand it, and reduces threads when resource efficiency becomes priority, enabling flexible adaptation to different operational phases

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the parameter of thread quantity based on monitored performance metrics. When throughput metrics indicate processing capacity is insufficient, the thread quantity parameter is increased. When resource consumption becomes excessive relative to processing demand, the parameter is decreased. This dynamic parameter adjustment resolves the contradiction between maximizing throughput and minimizing resource usage

Inventive Principle:
Principle #35Parameter changes

3Productivity

If thread pool size is increased to handle high message volumes, then processing capacity improves, but thread management overhead and system complexity increase

Engineering Contradiction:
Improveprocessing capacityVSAvoidthread management overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The thread pool implements self-service through automated management. The system autonomously monitors its own performance metrics and automatically adjusts thread quantity without external intervention. This self-managing capability reduces the operational complexity of managing large thread pools, as the system handles its own optimization rather than requiring manual thread management

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

Automated feedback loops continuously monitor processing capacity utilization and thread performance, adjusting thread pool size accordingly. This feedback-driven approach eliminates the need for complex manual thread management while maintaining optimal processing capacity, resolving the contradiction between high productivity and manageable complexity

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11269686B2Adaptive consumer thread pool
Publication Date: 2022.03.08 RED HAT INC
  • US11269686B2 patent drawing
  • US11269686B2 patent drawing
  • US11269686B2 patent drawing

AI summary

The present disclosure provides for a system with an adaptive thread pool for processing messages. The system includes a processor and a memory storing instructions. The processor allocates a first quantity of threads in a thread pool to process a set of messages in parallel. The processor then measures one or more performance metrics of the system while processing the messages with the first quantity of threads. The processor then determines whether each of the one or more performance metrics meets a respective predetermined threshold. The processor then increases the allocation of the first quantity of threads to a second quantity of threads in the thread pool if each of the one or more performance metrics meets the respective predetermined threshold. The processor may also decrease the quantity of threads if at least one performance metric does not meet its predetermined threshold.