Fair Unidirectional Multi-Queue VM Migration

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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.

Innovation Solution

Implementing fair unidirectional multi-queue virtual machine migration by using multiple streams to transfer memory updates, where the destination hypervisor tracks scan identifiers to ensure ordered processing and pause processing on streams with later identifiers, ensuring that memory updates are applied in the correct order.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If standard TCP connection is used for virtual machine migration, then reliable delivery is guaranteed, but data transfer rate is throttled by flow control

Engineering Contradiction:
Improvereliable deliveryVSAvoiddata transfer rate
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the migration data transfer into multiple unidirectional streams (fronting stream, paging stream, log stream, etc.) instead of using a single bidirectional TCP connection. Each stream operates independently with its own flow control, allowing parallel data transfer that bypasses the limitations of traditional TCP flow control while maintaining reliability through individual stream management.

Inventive Principle:
Principle #1Segmentation

2Reliability

If standard TCP connection is used for virtual machine migration, then reliable delivery is guaranteed, but processing errors disrupt transfer speed

Engineering Contradiction:
Improvereliable deliveryVSAvoidmigration duration
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent inverts the traditional bidirectional TCP communication model into multiple unidirectional streams. By eliminating the need for acknowledgments and error handling in the reverse direction, the system removes TCP processing overhead and potential error disruptions, achieving faster and more reliable data transfer without the bottlenecks of conventional TCP error handling.

Inventive Principle:
Principle #13The other way round (Inversion)

3Productivity

If multiple streams are used for migration, then data transfer efficiency is improved, but maintaining ordered updates becomes complex

Engineering Contradiction:
Improvedata transfer efficiencyVSAvoidstream ordering management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by establishing a predefined stream hierarchy and ordering rules before migration begins. The fronting stream is designated to carry the most critical updates with highest priority, followed by paging stream, log stream, and other streams in a predetermined sequence. This pre-established ordering framework simplifies the complexity of managing multiple streams during migration, as the destination hypervisor can automatically process updates in the correct sequence without complex real-time coordination.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10102023B2Fair unidirectional multi-queue virtual machine migration
Publication Date: 2018.10.16 RED HAT ISRAEL
  • US10102023B2 patent drawing
  • US10102023B2 patent drawing
  • US10102023B2 patent drawing

AI summary

Methods, systems, and computer program products for providing fair unidirectional multi-queue virtual machine migration are disclosed. A computer-implemented method may include maintaining a current scan identifier for each of a plurality of streams used to migrate a virtual machine from a first hypervisor to a second hypervisor, determining when a current scan identifier of a first stream and a current scan identifier of a second stream are associated with different memory states of the virtual machine, and adjusting processing of memory updates when the current scan identifiers are associated with different memory states of the virtual machine. The adjusting may be performed, for example, by pausing processing on each stream having a current scan identifier subsequent to the earliest current scan identifier determined for the streams, and processing memory updates on each stream having a current scan identifier matching the earliest current scan identifier.