Dynamic Cluster Resource Allocation for Serverless Workloads

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In traditional cluster computing, users often over-allocate resources due to unknown requirements, leading to inefficient cluster capacity usage and reduced overall performance.

Innovation Solution

A system for dynamic cluster resource allocation, which includes an interface and processor to estimate required resources, manage existing available resources, and adjust allocations by adding or removing resources as needed, ensuring optimal resource utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If users allocate more resources to ensure job requirements are met, then job reliability is improved, but cluster capacity utilization deteriorates

Engineering Contradiction:
Improvejob execution reliabilityVSAvoidcluster capacity utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements dynamic resource allocation where the system continuously monitors job execution and adjusts resource allocation in real-time. Users can specify minimum and maximum resource thresholds, and the system dynamically scales resources up or down based on actual job needs, replacing static over-allocation with adaptive dynamic management that maintains reliability while optimizing cluster utilization

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system employs feedback mechanisms by monitoring actual resource consumption during job execution and using this information to make subsequent allocation decisions. The system tracks job performance metrics and resource usage patterns, feeding this data back into the allocation algorithm to continuously improve resource distribution and prevent both over-allocation and under-allocation

Inventive Principle:
Principle #23Feedback

2Reliability

If users request more resources without knowing actual requirements, then risk of insufficient resources is reduced, but resource waste increases

Engineering Contradiction:
Improveresource sufficiencyVSAvoidresource waste
Core Design Contradiction:
ReliabilityVSLoss of substance

Solution Approach 1:

The patent applies partial action by allocating resources based on actual consumption patterns rather than maximum potential needs. The system starts with minimum required resources and incrementally adds resources only when job performance degrades or thresholds are exceeded, avoiding the excessive allocation of resources that would never be utilized

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system changes resource allocation parameters dynamically based on monitored job characteristics and performance metrics. Instead of using fixed resource allocations, the system adjusts CPU, memory, and storage parameters in real-time based on actual job demands, transforming static resource planning into adaptive parameter management

Inventive Principle:
Principle #35Parameter changes

3Device complexity

If static resource allocation is used to simplify management, then system complexity is reduced, but overall cluster efficiency deteriorates

Engineering Contradiction:
Improveresource management complexityVSAvoidcluster efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent implements self-service resource allocation where the system automatically monitors, evaluates, and adjusts resource distribution without requiring manual intervention. The resource management system serves itself by using embedded sensors and algorithms to detect allocation inefficiencies and automatically rebalance resources, reducing operational complexity while maintaining high efficiency

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10474501B2Serverless execution of code using cluster resources
Publication Date: 2019.11.12 DATABRICKS INC
  • US10474501B2 patent drawing
  • US10474501B2 patent drawing
  • US10474501B2 patent drawing

AI summary

A system for cluster resource allocation includes an interface and a processor. The interface is configured to receive a process and input data. The processor is configured to determine an estimate for resources required for the process to process the input data; determine existing available resources in a cluster for running the process; determine whether the existing available resources are sufficient for running the process; in the event it is determined that the existing available resources are not sufficient for running the process, indicate to add new resources; determine an allocated share of resources in the cluster for running the process; and cause execution of the process using the share of resources.