Dynamic Resource Allocation for Stream Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed stream processing systems, resource allocations for processing elements are typically static and non-optimal, leading to inefficient processing due to fixed requirements determined at setup time, which do not adapt to changing conditions or meet specific objectives.

Innovation Solution

A method that uses machine learning to dynamically allocate computing resources to processing elements by training a model based on historical resource allocation data and scoring to optimize resource usage according to specified objectives, such as minimizing CPU load or maximizing throughput, and reallocates resources throughout the life of the stream processing job.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If static resource allocation based on fixed requirements is used, then resource allocation is simple and deterministic, but resource utilization efficiency deteriorates due to inability to adapt to changing conditions

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidallocation system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements dynamic resource allocation by training a machine learning model to determine optimal resource allocations for processing elements. The model learns from historical data and adapts allocations based on changing conditions, transforming the static allocation system into a dynamic one that continuously optimizes resource utilization efficiency.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system employs self-service through automated machine learning-based resource allocation. The trained model autonomously determines optimal resource allocations without manual intervention, allowing the system to self-optimize resource distribution based on learned patterns and current conditions, thereby improving efficiency while managing complexity through automation.

Inventive Principle:
Principle #25Self-service

2Productivity

If machine learning-based dynamic allocation is implemented, then resource allocation optimality improves, but computational overhead and system complexity increase

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidcomputational overhead
Core Design Contradiction:
ProductivityVSUse of energy by stationary object

Solution Approach 1:

The patent applies preliminary action by training the machine learning model in advance using historical resource allocation data and performance metrics. This pre-training phase enables the model to learn optimal allocation strategies beforehand, allowing it to make rapid, low-overhead allocation decisions during actual stream processing operations without extensive real-time computation.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If fixed resource requirements are specified at setup time, then resource allocation is deterministic and easy to manage, but adaptability to changing conditions deteriorates

Engineering Contradiction:
Improveadaptability to changing conditionsVSAvoidallocation management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system implements feedback mechanisms by continuously monitoring stream processing performance metrics and using this information to refine resource allocations. The machine learning model learns from historical allocation data and performance outcomes, adjusting future allocations based on feedback about what works optimally under different conditions, thereby achieving adaptability while managing complexity through data-driven decisions.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11687380B2Optimizing resource allocation for distributed stream processing systems
Publication Date: 2023.06.27 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11687380B2 patent drawing
  • US11687380B2 patent drawing
  • US11687380B2 patent drawing

AI summary

Computer software executing on computer hardware that performs the following operations: (i) training a machine learning model to determine allocations of computing resources to processing elements of a stream processing job according to a specified objective; and (ii) allocating a set of computing resources to the processing elements by: allocating to the processing elements a first subset of the set of computing resources based, at least in part, on a minimum resource requirement for the processing elements, and allocating to the processing elements a second subset of the set of computing resources based, at least in part, on an allocation determined using the trained machine learning model.