Cluster Resource Prediction via Time Series Forecasting

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Cluster computing systems face inefficiencies due to spiky resource loads from large jobs, requiring extensive time to prepare and process, as computers need to be added and data transferred, leading to slowdowns and reduced efficiency.

Innovation Solution

A system for resource usage prediction that uses past usage data to forecast future needs, employing time series forecasting algorithms to provision computing resources and data instances in advance, optimizing resource allocation through data partitioning and Monte Carlo simulations to ensure efficient processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If computers are added to the cluster to handle large jobs, then processing capacity is improved, but preparation time increases

Engineering Contradiction:
Improveprocessing capacityVSAvoidpreparation time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by predicting future resource usage patterns and proactively provisioning computing resources before they are actually needed. This allows the cluster to be pre-configured with appropriate capacity, eliminating the preparation delay that would occur if resources were added reactively after a large job request is received.

Inventive Principle:
Principle #10Preliminary action

2Speed

If data is transferred to worker machines for processing, then processing speed is improved, but transfer time increases

Engineering Contradiction:
Improveprocessing speedVSAvoidtransfer time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The system predicts which data will be needed for future processing tasks and initiates data transfer to worker machines in advance. This preliminary data preparation ensures that when processing requests arrive, the data is already positioned at the appropriate worker machines, eliminating transfer delays and maintaining high processing speed.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If the cluster is prepared in advance for large jobs, then processing efficiency is improved, but resource allocation complexity increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidresource allocation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system employs feedback mechanisms by continuously monitoring actual resource usage patterns and comparing them against predictions. This feedback loop allows the system to refine its prediction algorithms and adjust resource allocation strategies, managing the complexity of advance provisioning through data-driven optimization rather than static, rigid allocation rules.

Inventive Principle:
Principle #23Feedback

4Loss of time

If computing resources are provisioned based on predicted usage, then response time is improved, but prediction accuracy requirements increase

Engineering Contradiction:
Improveresponse timeVSAvoidprediction accuracy
Core Design Contradiction:
Loss of timeVSMeasurement precision

Solution Approach 1:

The system applies partial provisioning by allocating resources based on predicted usage patterns rather than maximum possible demand. This approach provides sufficient resources to handle expected workloads with good response times while avoiding the excessive resource allocation that would be required if the system attempted to guarantee performance under all possible scenarios, thereby reducing the stringency of prediction accuracy requirements.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11556389B2Resource usage prediction for cluster provisioning
Publication Date: 2023.01.17 WORKDAY INC
  • US11556389B2 patent drawing
  • US11556389B2 patent drawing
  • US11556389B2 patent drawing

AI summary

A system for provisioning resources includes a processor and a memory. The processor is configured to receive a time series of past usage data. The past usage data comprises process usage data and instance usage data. The processor is further configured to determine an upcoming usage data based at least in part on the time series of the past usage data, and provision a computing system according to the upcoming usage data.