VM Packet Similarity via Header Conversion
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
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
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.
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.
Data Source
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.


