Virtual Machine Shared Memory Data Transfer
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for data communication between virtual machines or between a virtual machine and a host machine are inefficient due to high latency and overhead, particularly when using network messaging that requires serialization and deserialization of data.
Innovation Solution
A computer-implemented method using a shared memory block with a buffer, post counter, and acknowledgment counter to facilitate direct data transfer between virtual machines or a host and virtual machines, eliminating the need for serialization and deserialization by incrementing counters to signal data availability and receipt.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If network messaging techniques are used for communication between virtual machines, then communication can be performed as though they were physical computing devices, but latency and processing overhead increase due to serialization and deserialization requirements
Solution Approach 1:
The patent extracts the data directly from the source virtual machine's memory space and places it into the destination virtual machine's memory space through a shared memory block, eliminating the intermediate serialization and deserialization steps that would otherwise be required for network messaging communication
Solution Approach 2:
The patent introduces a shared memory block as an intermediary structure that both virtual machines can access directly, allowing data to be transferred through this intermediate memory region without requiring full network protocol processing, thus reducing latency while maintaining communication capability
2Adaptability or versatility
If network messaging techniques are used for communication between virtual machines, then communication can be performed as though they were physical computing devices, but processing overhead increases due to serialization and deserialization requirements
Solution Approach 1:
The patent removes the complex serialization and deserialization processing steps from the data transfer path by using direct memory access through a shared memory block, reducing processing overhead while preserving the ability to communicate between virtual machines as if they were physical devices
Solution Approach 2:
The patent replaces the mechanical process of serializing data to a protocol format and then deserializing it with a direct memory copy operation, substituting the complex protocol processing mechanism with a simpler memory access mechanism that achieves the same communication goal with less overhead
Data Source
Figure 1~2
Figure 3~4
Figure 5~6
AI summary
A memory block is provided that is shared between two endpoints. This first endpoint is either a host for a virtual machine or the virtual machine. The second endpoint is either the host or another virtual machine. The shared memory block includes a buffer, a post counter, and an acknowledgment counter. The block is employed for communicating data from the first endpoint to the second endpoint. Sending data to the second endpoint includes identifying the buffer as being currently owned by the first endpoint and storing data in the buffer. It is then detected that the acknowledgment counter is equal to the post counter. The post counter is then incremented to signal that data has been stored for receipt by the second endpoint. Receiving the data by the second endpoint includes detecting that the post counter has changed and then incrementing the acknowledgment counter to acknowledge receipt of the data.