Dynamic Thread Count Adjustment for Request Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems fail to dynamically optimize the number of parallel threads for processing incoming requests based on the availability of processing resources, leading to inefficiencies such as idle resources and context switches.

Innovation Solution

A system and method that utilize a request dispatcher to dynamically determine the number of parallel threads based on the availability of processing resources, ensuring that threads are executed in parallel only when sufficient resources are available, thereby avoiding idle resources and context switches.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the system always executes the maximum number of parallel threads for a request, then the processing throughput is maximized, but the processing resources become idle or require frequent context switches when resources are not available

Engineering Contradiction:
Improveprocessing throughputVSAvoidresource idle time and context switch overhead
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system dynamically adjusts the number of parallel threads based on real-time availability of processing resources. The request dispatcher monitors resource availability and determines the optimal degree of parallelism for each request, transitioning from static maximum parallelism to dynamic adaptive parallelism that matches actual resource capacity

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the parameter of parallel thread count from a fixed maximum value to a variable value that depends on resource availability. The request dispatcher modifies the degree of parallelism parameter based on current system state, allowing the number of parallel threads to fluctuate between 1 and the maximum possible based on available resources

Inventive Principle:
Principle #35Parameter changes

2Productivity

If the system dynamically adjusts the number of parallel threads based on resource availability, then resource utilization is optimized, but the system complexity increases due to additional monitoring and decision logic

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidrequest dispatcher complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The request dispatcher performs multiple functions: it receives requests, determines the degree of parallelism based on resource availability, and dispatches threads to processing resources. By consolidating these functions into a single component, the system avoids the complexity of separate monitoring and scheduling modules while achieving dynamic resource allocation

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system automatically monitors resource availability and makes decisions about thread dispatching without external intervention. The request dispatcher self-regulates the degree of parallelism based on real-time resource state, eliminating the need for complex external control mechanisms or manual configuration

Inventive Principle:
Principle #25Self-service

3Reliability

If the system sequentially executes threads when resources are not available, then context switches are avoided, but the processing time increases due to reduced parallelism

Engineering Contradiction:
Improveexecution stabilityVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system executes the maximum number of parallel threads possible given current resource availability, rather than always executing the full maximum or always sequentially. This partial parallelism approach utilizes available resources fully while avoiding the penalties of both complete sequential execution and over-subscription

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11392388B2System and method for dynamic determination of a number of parallel threads for a request
Publication Date: 2022.07.19 HUAWEI TECH CO LTD
  • US11392388B2 patent drawing
  • US11392388B2 patent drawing
  • US11392388B2 patent drawing

AI summary

Provided is a process for determining a number of parallel threads for a request. The process involves receiving availability data regarding processing resources, wherein the availability data indicates which processing resources are idle or are to become idle. Based on the availability data, a number of parallel threads for the request is determined.