Virtual Machine Branching for Parallel State Exploration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current branching technologies are inadequate for testing complex systems, as they apply at too low a level and require laborious setup to explore multiple potential states, leading to inefficiencies and increased error rates due to time constraints.

Innovation Solution

A state branching system that modifies the hypervisor to allow parallel execution of virtual machines, enabling branching at the virtual machine level, where a specific state is set up and copied to explore different subsequent states, allowing divergent branching and efficient exploration of complex state changes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If traditional branching methods are used to test complex systems, then multiple potential states can be explored, but significant time and labor are required for setup and execution

Engineering Contradiction:
Improveability to explore multiple potential statesVSAvoidtime and labor required for setup
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent creates virtual copies of the computing system state through virtual machine snapshots. When a branch point is detected, the system creates snapshot copies of the current state and distributes them to multiple computing devices, enabling parallel exploration of different potential states without requiring laborious manual setup for each test scenario

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent transitions from single-device serial testing to multi-device parallel testing by distributing virtual machine snapshots across multiple computing devices in a network. This adds the dimension of spatial parallelism, allowing simultaneous exploration of multiple state branches that would otherwise require sequential execution on a single device

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

2Productivity

If multiple machines are used to run tests in parallel, then testing efficiency improves, but each machine requires laborious setup to a common state

Engineering Contradiction:
Improvetesting efficiencyVSAvoidsetup complexity
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

Instead of manually configuring each computing device to the same initial state, the system creates virtual machine snapshots that capture the complete system state and automatically distributes identical copies to multiple devices. This eliminates manual setup complexity while maintaining parallel testing efficiency

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The system performs preliminary state capture by creating virtual machine snapshots before distribution. This preliminary action of capturing and preparing standardized state copies in advance eliminates the need for laborious setup on each device, allowing parallel testing to begin immediately upon distribution

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If serial test execution is used, then setup complexity is reduced, but testing time increases significantly

Engineering Contradiction:
Improvesetup simplicityVSAvoidtesting duration
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent transitions from temporal serial execution to spatial parallel execution by distributing test branches across multiple computing devices simultaneously. This dimensional shift allows the system to maintain simple automated setup procedures while dramatically reducing total testing time through parallel processing

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

Data Source

PatentEP2652600B1Virtual machine branching and parallel execution
Publication Date: 2017.09.06 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2652600B1 patent drawingFigure 1
  • EP2652600B1 patent drawingFigure 2
  • EP2652600B1 patent drawingFigure 3

AI summary

A state branching system is described herein that allows parallel execution of complex state transitions while leveraging time invested to setup a starting state. By allowing branching at the virtual machine level, the state branching system allows setup of a particular condition or state in a virtual machine, then copying and branching to parallel instances of the virtual machine to explore different possible subsequent states. Upon detecting a large state change with unknown outcome, the state branching system instructs the hypervisor to copy the executing virtual machine into one or more separate virtual machines. The system then allows divergent branching between the two or more virtual machines to explore different states from a similar starting point. Once the executions have reached the next state, the system coordinates to determine which copies will continue execution. Thus, the state branching system allows faster exploration of complex state changes.