COLO Manager Checkpointing Policy for VM Fault Tolerance

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 with high overhead and network latency, especially in multiprocessor environments, and require frequent buffering of output packets to ensure successful failover.

Innovation Solution

The implementation of Coarse-Grain Lock-Stepping (COLO) with a COLO manager and checkpointing arbitrator that determines a checkpointing/delivery policy based on output packet similarity between primary and secondary virtual machines, allowing for on-demand checkpointing and instant delivery modes to reduce overhead and latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If lock-stepping is used to replicate VM states per instruction, then fault tolerance reliability is improved, but device complexity and overhead increase significantly in multiprocessor environments

Engineering Contradiction:
Improvefault toleranceVSAvoidsystem overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system segments the fault tolerance approach into two modes: lock-stepping for deterministic instructions and periodic checkpointing for non-deterministic instructions. This segmentation allows the system to apply the simpler checkpointing method where possible, reducing overall complexity while maintaining reliability through lock-stepping when needed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically switches between lock-stepping and periodic checkpointing based on instruction determinism. The SVM executes in lock-step mode for deterministic instructions and transitions to periodic checkpointing for non-deterministic instructions, optimizing the balance between reliability and complexity in real-time.

Inventive Principle:
Principle #15Dynamics

2Reliability

If periodic checkpointing is used to replicate PVM state to SVM, then fault tolerance is achieved, but network latency increases due to output packet buffering

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

Solution Approach 1:

The system dynamically adjusts packet delivery based on checkpoint status. Output packets are buffered only when a checkpoint is in progress or pending, and delivered immediately when no checkpoint is needed. This dynamic approach minimizes buffering time and reduces network latency while ensuring fault tolerance.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system uses the SVM's own execution state and checkpoint status to determine packet delivery timing. The SVM autonomously manages its replication state and makes decisions about when buffering is necessary, eliminating the need for external control and reducing overhead.

Inventive Principle:
Principle #25Self-service

3Reliability

If output packets are buffered until successful checkpoint completion, then failover reliability is guaranteed, but productivity decreases due to frequent buffering

Engineering Contradiction:
Improvefailover successVSAvoidpacket delivery efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system implements periodic checkpointing at fixed intervals rather than continuously. Output packets are buffered only during these periodic checkpoint intervals, allowing for efficient batched delivery when checkpoints are not in progress. This periodic approach maintains reliability while improving overall productivity compared to continuous buffering.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The system applies buffering only partially - only when necessary to ensure checkpoint consistency. Most packets can be delivered immediately without buffering, and only those packets that would violate checkpoint integrity are buffered. This partial application of buffering minimizes its impact on productivity while maintaining failover reliability.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10929157B2Techniques for checkpointing/delivery between primary and secondary virtual machines
Publication Date: 2021.02.23 INTEL CORP
  • US10929157B2 patent drawing
  • US10929157B2 patent drawing
  • US10929157B2 patent drawing

AI summary

Examples may include a determining a policy for primary and secondary virtual machines based on output-packet-similarities. The output-packet-similarities may be based on a comparison of time intervals via which content matched for packets outputted from the primary and secondary virtual machines. A mode may then be selected based, at least in part, on the determined policy.