Dynamic Virtual Machine Allocation for Streaming Flow Graphs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Streaming applications face challenges in efficiently allocating computer resources due to varying workloads, leading to idle resources during low demand and potential overload during peak demand, as traditional methods require fixed hardware allocations that do not adapt dynamically to changing usage patterns.

Innovation Solution

A streams manager dynamically adjusts the allocation of virtual machines (VMs) by monitoring performance thresholds for operators in a flow graph, splitting underperforming portions into multiple VMs and coalescing overperforming VMs into a single VM, allowing for real-time resource optimization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If computer resources are allocated permanently to assure streaming application performance during peak demand, then the streaming application can always function as desired, but many resources will sit idle when the workload is significantly less than maximum

Engineering Contradiction:
Improvestreaming application performanceVSAvoididle resources
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent implements dynamic resource allocation by continuously monitoring streaming application performance metrics and automatically adjusting the number of active virtual machines based on current workload demands. This replaces static permanent allocation with adaptive dynamic allocation, allowing the system to scale resources up during peak demand and scale down during low demand periods, thus maintaining performance reliability while eliminating idle resource waste

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system employs performance monitoring that continuously feeds back workload metrics to the resource allocation mechanism. This feedback loop enables the system to detect when performance thresholds are met or exceeded, triggering automatic reduction of allocated resources, and to detect when performance degradation occurs, triggering automatic resource scaling. This closed-loop control resolves the contradiction by aligning resource allocation with actual performance needs

Inventive Principle:
Principle #23Feedback

2Productivity

If hardware resources are increased to meet increased demand, then the streaming application can handle higher workload, but the system requires corresponding increase in hardware resources

Engineering Contradiction:
Improveworkload handling capacityVSAvoidhardware resources
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the streaming application into multiple independent virtual machines that can be dynamically provisioned and deprovisioned. Each virtual machine handles a portion of the workload, allowing the system to scale productivity by adding or removing individual VM instances rather than requiring proportional increases in physical hardware infrastructure. This segmentation enables flexible resource utilization and reduces overall device complexity

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The virtualized infrastructure creates universal computing resources that can serve multiple streaming applications and workloads. A single pool of physical hardware resources can be dynamically allocated to different virtual machines based on demand, allowing the same hardware to handle varying workload capacities over time. This multi-functionality eliminates the need for dedicated hardware increases for each productivity requirement

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Reliability

If virtual machines are split to improve performance, then underperforming portions can be distributed to multiple VMs, but the system complexity increases

Engineering Contradiction:
Improveperformance threshold satisfactionVSAvoidVM allocation management
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements self-service automation where the system automatically monitors performance metrics, determines when splitting is needed, executes the splitting operation, and manages the redistribution of workload across multiple virtual machines. This automated self-service approach resolves the complexity issue by eliminating the need for manual VM management, allowing performance threshold satisfaction to be maintained through automatic adaptive splitting without proportionally increasing operational complexity

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10305756B2Allocating operations of a streaming application to virtual machines based on monitored performance
Publication Date: 2019.05.28 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10305756B2 patent drawing
  • US10305756B2 patent drawing
  • US10305756B2 patent drawing

AI summary

Performance thresholds are defined for operators in a flow graph for a streaming application. A streams manager deploys the flow graph to one or more virtual machines (VMs). The performance of each portion of the flow graph on each VM is monitored. A VM is selected. When the performance of the portion of the flow graph in the selected VM does not satisfy the defined performance threshold(s), a determination is made regarding whether the portion of the flow graph is underperforming or overperforming. When the portion of the flow graph is underperforming, the portion of the flow graph is split into multiple portions that are implemented on multiple VMs. When the portion of the flow graph is overperforming, a determination is made of whether a neighbor VM is also overperforming. When a neighbor VM is also overperforming, the two VMs may be coalesced into a single VM.