Non-blocking Unidirectional Multi-Queue VM Migration
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Virtual machine migration over standard TCP connections is limited by flow control, leading to inefficiencies in data transfer rates and increased risk of state divergence during live migration, due to processing errors and throttling.
Innovation Solution
Implementing non-blocking unidirectional multi-queue virtual machine migration by using multiple streams for parallel memory state transfer, with dynamic stream mapping and redistribution to balance utilization and ensure continuous data transfer without acknowledging updates.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If standard TCP connection is used for virtual machine migration, then reliable data delivery is guaranteed, but data transfer rate is throttled by flow control
Solution Approach 1:
The patent segments the migration data transfer into multiple independent unidirectional streams (e.g., stream 0, stream 1, stream 2) instead of using a single bidirectional TCP connection. Each stream operates independently with its own data transfer channel, allowing parallel data transmission without mutual interference. This segmentation enables the system to bypass the flow control limitations of traditional TCP while maintaining data integrity through destination-side reassembly and validation.
2Reliability
If standard TCP connection is used for virtual machine migration, then data transfer reliability is maintained, but migration duration is increased due to processing errors and throttling
Solution Approach 1:
The patent performs preliminary actions by establishing multiple unidirectional streams in advance and pre-configuring the data transfer architecture before migration begins. The source hypervisor prepares multiple parallel data channels, and the destination hypervisor pre-configures its receiving infrastructure. This preliminary setup eliminates the need for iterative retry logic and flow control negotiations during the actual migration process, thereby reducing migration duration while maintaining reliability.
Solution Approach 2:
The patent ensures continuous data transfer by using multiple unidirectional streams that operate without the interruptions characteristic of traditional TCP flow control. Each stream maintains continuous data flow from source to destination, and if one stream encounters issues, others continue transmitting. This continuity of useful action eliminates idle waiting periods and retransmission delays, significantly reducing migration duration while preserving data integrity through destination-side verification.
3Productivity
If multiple streams are used for parallel memory state transfer, then migration performance is enhanced, but system complexity is increased
Solution Approach 1:
The patent merges multiple unidirectional streams at the destination hypervisor into a single coherent memory state reconstruction process. Instead of managing each stream independently throughout the entire migration pipeline, the system combines the parallel data flows at the destination using a unified reassembly and validation mechanism. This merging approach maintains high migration performance by utilizing parallel streams for data transfer while reducing overall system complexity by consolidating the complex coordination logic at a single point (the destination) rather than distributing it throughout the entire system.
Data Source
AI summary
Methods, systems, and computer program products for non-blocking unidirectional multi-queue virtual machine migration are provided. A computer-implemented method may include maintaining information to track an association between a memory area in a virtual machine and a stream for a first stage of virtual machine migration, detecting one or more updates to the memory area during the first stage of migration, examining the information to identify the stream associated with the memory area for the first stage of migration, sending the updates to the memory area on the identified stream during the first stage of migration, modifying the information to associate the memory area with a new stream for a second stage of the migration, and sending updates to the memory area on the new stream during the second stage of migration.


