Cloud Resource Allocation via Dependency Graph Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing resource allocation methods for streaming computation in cloud environments, such as the lazy and aggressive policies, are inefficient, leading to suboptimal resource utilization and frequent resource fluctuations, which can delay processing and waste resources.

Innovation Solution

A method that allocates resources based on the dependency of job stages and metrics from previous sub-streams, determining the optimal amount of resources needed to process a sub-stream within a predetermined interval by analyzing the dependency graph and historical processing metrics, ensuring efficient resource utilization and minimizing fluctuations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of energy

If lazy policy is used for resource allocation, then resource utilization is improved, but processing speed deteriorates due to delayed resource allocation

Engineering Contradiction:
Improveresource utilizationVSAvoidprocessing speed
Core Design Contradiction:
Loss of energyVSSpeed

Solution Approach 1:

The system performs preliminary analysis of the dependency graph to identify critical path stages before resource allocation. By pre-determining which stages are critical and will determine overall processing time, the system can allocate resources in advance to these specific stages, avoiding both the waste of lazy allocation and the premature commitment of aggressive allocation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically changes resource allocation parameters based on the analyzed dependency structure. Instead of using fixed allocation policies, the system adjusts resource distribution according to the critical path identification, allocating more resources to stages that have the greatest impact on overall processing time and fewer resources to non-critical stages.

Inventive Principle:
Principle #35Parameter changes

2Speed

If aggressive policy is used for resource allocation, then processing speed is improved, but resource fluctuations increase leading to instability

Engineering Contradiction:
Improveprocessing speedVSAvoidresource allocation stability
Core Design Contradiction:
SpeedVSStability of the object's composition

Solution Approach 1:

The system applies different resource allocation strategies to different stages based on their local characteristics in the dependency graph. Critical path stages receive aggressive resource allocation to maintain processing speed, while non-critical stages receive stable, conservative allocation. This localized approach allows the system to achieve high processing speed without causing system-wide resource fluctuations.

Inventive Principle:
Principle #3Local quality

3Productivity

If more resources are allocated to streaming jobs, then productivity is improved, but resource competition increases leading to waste

Engineering Contradiction:
Improveprocessing throughputVSAvoidresource waste
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The system uses feedback from the dependency graph analysis to guide resource allocation decisions. By continuously analyzing the critical path and adjusting resource allocation accordingly, the system ensures that resources are directed to stages that will actually improve throughput, avoiding waste on non-critical stages where additional resources would not increase productivity.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10901797B2Resource allocation
Publication Date: 2021.01.26 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10901797B2 patent drawing
  • US10901797B2 patent drawing
  • US10901797B2 patent drawing

AI summary

Techniques for allocating resources including receiving a first sub-stream of a data stream associated with a job and determining a dependency of a plurality of stages of the job. The techniques further include determining a metric for a second sub-stream of the data stream, where processing of the second sub-stream is completed and the metric indicates information associated with the processing of the second sub-stream. The techniques further include allocating resources for processing the first sub-stream based at least in part on the metric and the dependency.