VM Packet Similarity via Header Conversion

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing fault tolerance solutions for virtual machines, such as lock-stepping and checkpointing, face challenges in maintaining output-packet-similarity between primary and secondary virtual machines, especially in multiprocessor environments, leading to increased network latency and overhead due to non-deterministic memory access and frequent checkpoints.

Innovation Solution

The proposed solution involves intercepting network packets from primary virtual machines, converting specific TCP/IP header fields to more predictable deterministic values, and forwarding them to a COLO manager, which determines output-packet-similarity with corresponding packets from secondary virtual machines, thereby improving packet similarity and reducing latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If lock-stepping is used to replicate VM states per instruction, then fault tolerance is improved, but overhead increases significantly in multiprocessor environments due to non-deterministic memory access

Engineering Contradiction:
Improvefault toleranceVSAvoidoverhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system segments the fault tolerance mechanism into two parts: deterministic instruction execution is replicated across PVM and SVM, while non-deterministic memory access results are captured and replayed later. This segmentation allows the system to avoid the overhead of replicating every memory access while maintaining fault tolerance for deterministic operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary action by capturing and storing the results of non-deterministic memory access during the first execution (PVM). These captured results are then replayed during the second execution (SVM), eliminating the need to re-execute non-deterministic operations and reducing overhead.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If checkpointing is used to replicate PVM state to SVM at periodic epochs, then fault tolerance is improved, but network latency increases due to output packet buffering and frequent checkpoints

Engineering Contradiction:
Improvefault toleranceVSAvoidnetwork latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system uses periodic action by executing the same input dataset twice through PVM and SVM at periodic epochs, comparing outputs to detect drift. This periodic re-execution provides fault tolerance without requiring continuous buffering of output packets, reducing network latency compared to traditional checkpointing.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

Instead of buffering output packets until checkpoint completion, the system creates a copy of the input dataset and replays it through the SVM. This copying approach allows the SVM to independently verify its state without waiting for checkpoint completion, eliminating the need for output packet buffering and reducing network latency.

Inventive Principle:
Principle #26Copying

3Productivity

If COLO is used to monitor output responses and consider SVM state as valid replica, then high availability is improved, but output-packet-similarity decreases in multiprocessor environments due to non-deterministic memory access

Engineering Contradiction:
Improvehigh availabilityVSAvoidoutput-packet-similarity
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The system substitutes the mechanical comparison of output packets with a computational approach: capturing non-deterministic memory access results, replaying the same input dataset, and comparing the replayed results. This substitution maintains output-packet-similarity by ensuring both PVM and SVM process identical inputs in the same order, even in multiprocessor environments.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The system changes the parameter being monitored from raw output packet similarity to replayed output similarity. By replaying the same input dataset through both PVM and SVM and comparing the replayed results, the system maintains similarity metrics even when non-deterministic memory access causes variations in raw output packets.

Inventive Principle:
Principle #35Parameter changes

4Reliability

If per-TCP connection response packet comparison is used in COLO, then fault tolerance is improved, but network latency increases due to withholding transmission until PVM state synchronization

Engineering Contradiction:
Improvefault toleranceVSAvoidnetwork latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary action by capturing the results of non-deterministic memory access during PVM execution before SVM execution begins. This preliminary capture allows the SVM to replay the same operations without waiting for PVM state synchronization, eliminating the need to withhold transmission and reducing network latency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system introduces an intermediary mechanism: a capture buffer that stores the results of non-deterministic memory access. This intermediary allows the SVM to access pre-captured results without waiting for PVM state synchronization, enabling continuous operation and reducing network latency while maintaining fault tolerance.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11023265B2Techniques for improving output-packet-similarity between primary and secondary virtual machines
Publication Date: 2021.06.01 INTEL CORP
  • US11023265B2 patent drawing
  • US11023265B2 patent drawing
  • US11023265B2 patent drawing

AI summary

Examples may include intercepting packets outputted from a primary virtual machine (PVM) hosted by a first server and converting one or more fields of protocol headers for each intercepted packet such that output-packet-similarity may be increased between the PVM outputted packets and packets outputted by a secondary virtual machine (SVM) hosted by a second server.