Distributed Program Execution Service Manager for Dynamic Resource Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Managing large-scale distributed computing resources across multiple nodes is complex due to increased scale and scope, with existing solutions struggling to dynamically monitor and modify resource allocation efficiently to prevent bottlenecks and optimize resource usage.

Innovation Solution

A Distributed Program Execution Service System Manager dynamically monitors resource usage across a cluster of computing nodes, allowing for real-time adjustments such as adding or removing nodes, modifying resource allocation, and throttling usage to ensure efficient execution of programs by distributing and managing computing resources effectively.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If virtualization technologies are used to share computing resources among multiple customers, then resource utilization efficiency is improved, but system complexity increases

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a resource manager as an intermediary component that sits between the virtualized computing resources and multiple customers. This resource manager handles allocation, monitoring, and modification of resource clusters, thereby simplifying the interface complexity while maintaining high resource utilization through virtualization. The resource manager abstracts the complex virtualization management tasks into standardized operations for customers.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the scale and scope of data centers increase to support larger programs, then computing capability is improved, but provisioning and management complexity increases

Engineering Contradiction:
Improvecomputing capabilityVSAvoidprovisioning and management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements dynamic resource cluster management where the system can automatically add, remove, or modify computing nodes in response to changing workload demands. The resource manager continuously monitors program execution requirements and dynamically adjusts the cluster configuration, enabling the data center to scale computing capability flexibly without manual provisioning complexity. This dynamic approach allows the system to adapt to varying program sizes and resource demands automatically.

Inventive Principle:
Principle #15Dynamics

3Device complexity

If static resource allocation is used for distributed program execution, then system simplicity is maintained, but resource utilization efficiency deteriorates due to bottlenecks

Engineering Contradiction:
Improvesystem simplicityVSAvoidresource utilization efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent implements a feedback mechanism where the resource manager continuously monitors the execution status of distributed programs and the utilization level of computing resources. Based on this feedback, the system automatically modifies resource cluster configurations to optimize performance. When bottlenecks are detected, the resource manager can add resources or redistribute workloads, thereby maintaining high resource utilization efficiency while managing system complexity through automated control loops.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11425194B1Dynamically modifying a cluster of computing nodes used for distributed execution of a program
Publication Date: 2022.08.23 AMAZON TECH INC
  • US11425194B1 patent drawing
  • US11425194B1 patent drawing
  • US11425194B1 patent drawing

AI summary

Techniques are described for managing distributed execution of programs. In some situations, the techniques include dynamically modifying the distributed program execution in various manners, such as based on monitored status information. The dynamic modifying of the distributed program execution may include adding and/or removing computing nodes from a cluster that is executing the program, modifying the amount of computing resources that are available for the distributed program execution, terminating or temporarily suspending execution of the program (e.g., if an insufficient quantity of computing nodes of the cluster are available to perform execution), etc.