Distributed Virtual Machine Thread Execution Across Devices
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
As applications grow in size, they require additional computing resources, which can be costly and inefficient to manage with traditional single-host virtual machine environments, especially since data transfer between different computing devices is slower than within the same device.
Innovation Solution
A distributed virtual machine environment across multiple computing devices is implemented, allowing applications to execute across multiple devices with minimal latency and increased data transfer speeds through a high-speed network connection, such as gigabit Ethernet, while being transparent to the application and users, with a machine manager routing communications and balancing workloads.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If applications execute across multiple computing devices, then computing resource capacity increases, but data transfer speed decreases
Solution Approach 1:
The patent divides the virtual machine environment into distributed segments across multiple computing devices. Each device hosts portions of the virtual machine, allowing applications to execute across multiple devices while maintaining the illusion of a single unified environment. This segmentation enables increased computing resource capacity while managing data transfer through coordinated communication protocols.
Solution Approach 2:
The patent introduces a communication fabric and virtual machine manager as intermediaries between distributed computing devices. These intermediaries coordinate data transfer and synchronization, managing the complexity of multi-device communication while enabling applications to access distributed resources transparently.
2Speed
If traditional single-host virtual machine environments are used, then data transfer speed is maintained, but computing resource capacity is limited
Solution Approach 1:
The patent transitions from a single-host vertical resource model to a multi-device horizontal distributed model. By adding the dimension of spatial distribution across multiple computing devices connected via high-speed networks, the system achieves both increased resource capacity and maintained data transfer speeds through parallel processing and distributed architecture.
3Quantity of substance
If distributed virtual machine environment is implemented, then computing resource capacity increases, but system complexity increases
Solution Approach 1:
The patent creates a universal distributed virtual machine environment that presents a unified interface to applications regardless of the underlying distributed complexity. The virtual machine manager and communication fabric provide multi-functional capabilities including resource allocation, synchronization, and coordination, hiding the distributed system complexity from applications while enabling access to expanded resources.
4Speed
If high-speed network connections are used, then data transfer speed increases, but implementation cost increases
Solution Approach 1:
The patent optimizes network communication parameters and protocols for the distributed virtual machine environment. By adjusting communication frequencies, data packet sizes, and synchronization intervals, the system achieves high effective data transfer speeds using existing network infrastructure, reducing the need for expensive specialized high-speed hardware while maintaining performance.
Data Source
AI summary
According to one embodiment, a computer-implemented method includes executing code for an application using a computing resource of a first computing device. The application requests execution of a first thread and a second thread. The first thread is executed using the computing resource of the first computing device. A second computing device is selected from a plurality of computing devices. The second computing device has an available computing resource to execute the second thread. The second thread is assigned to the second computing device. The second computing device is operable to execute the second thread using the available computing resource.


