Virtual Machine Workflow Pipelining for Parallel Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing management applications for virtual machines in computer systems face inefficiencies in multistep workflows, particularly in disaster recovery scenarios, where all virtual machines must be available and complete all steps before the first can finish, leading to increased time as the number of objects or workflow size grows.

Innovation Solution

Implementing pipelined execution and batching in workflow engines, where workgroups are processed independently, with higher priority workgroups advancing through steps without waiting for others, and batches are processed collectively to optimize execution time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If all virtual machines are processed sequentially through each workflow step before moving to the next step, then the state representation remains simple and valid for the entire workflow, but the overall execution time increases significantly

Engineering Contradiction:
Improveworkflow execution state representationVSAvoidworkflow execution time
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The patent divides the workflow execution into multiple independent pipelines, where each pipeline processes a subset of virtual machines through multiple steps. This segmentation allows parallel processing of different VM groups while maintaining simpler state tracking within each pipeline, resolving the contradiction between execution time and state representation complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension to workflow execution by organizing VMs into workgroups and processing them through multiple pipelines simultaneously. This dimensional change from sequential single-threaded execution to parallel multi-pipeline execution reduces overall execution time while managing state complexity through structured organization.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Reliability

If all virtual machines must be available at the beginning of the workflow and complete all steps before the first object can complete, then consistent state management is achieved, but the time to complete the first object increases noticeably

Engineering Contradiction:
Improveworkflow state consistencyVSAvoidtime to complete first object
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary actions by pre-processing workflow steps that can be executed independently before all VMs are ready. Pipeline 1 can complete its steps and advance while other pipelines are still processing, allowing the workflow to make progress without waiting for all VMs to be fully prepared, thus reducing completion time while maintaining consistency through structured state management.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces dynamic behavior to the workflow execution by allowing different pipelines to progress at different rates based on VM availability and processing status. The workflow engine dynamically manages pipeline instantiation and progression, enabling flexible state transitions that maintain consistency while optimizing execution time through parallel advancement of ready pipelines.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9430284B2Processing virtual machine objects through multistep workflows
Publication Date: 2016.08.30 VMWARE INC
  • US9430284B2 patent drawing
  • US9430284B2 patent drawing
  • US9430284B2 patent drawing

AI summary

Techniques to process virtual machine objects through multistep workflows in a computer system are described. In an example, a method of processing virtual machine objects through a workflow having a plurality of ordered steps in a computer system includes executing the workflow on computing resources of the computer system using the virtual machine objects as parametric input, where the computing resources: divide the virtual machine objects into workgroups; perform instances of a step of the workflow in parallel on the workgroups as the workgroups complete a prior step in the workflow; and execute an agent to delegate the workgroups to, and receive results from, the instances of the step as the workflow is executed.