Virtual Machine Branching for Parallel State Exploration
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
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
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
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
3Ease of operation
If serial test execution is used, then setup complexity is reduced, but testing time increases significantly
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
Data Source
Figure 1
Figure 2
Figure 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.