Virtual Machine Checkpointing via Incremental Memory Tracking
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Symmetric multiprocessing (SMP) virtual machines face challenges in achieving fault tolerance due to the inefficiency of deterministic replay techniques, limiting their ability to support frequent and fast checkpointing necessary for fault recovery and speculative calculations.
Innovation Solution
Implementing a method that frequently suspends and resumes a primary virtual machine to transmit updated state information to a backup VM, using incremental checkpointing and memory page history tracking to optimize the transmission of modifications, allowing for efficient fault tolerance without relying on non-deterministic instruction stream record-replay techniques.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If deterministic replay techniques are used for SMP virtual machines, then fault tolerance can be achieved, but the efficiency is insufficient and frequent checkpointing cannot be supported
Solution Approach 1:
The patent segments the checkpointing process by separating the primary VM execution from the backup VM state capture. The primary VM continues executing while only modified memory pages are identified and transmitted to the backup VM, rather than suspending the entire system for full state capture. This segmentation enables frequent checkpointing without significant performance penalty.
Solution Approach 2:
The patent implements preliminary action by maintaining modification history data structures that track which memory pages have changed since the last checkpoint. This pre-computed information allows the system to quickly identify and transmit only the necessary state changes without performing comprehensive state analysis during the checkpoint operation itself.
2Reliability
If frequent checkpointing is implemented by suspending the VM, then accurate state capture is achieved, but the suspension time accumulates and reduces productivity
Solution Approach 1:
The patent applies partial action by capturing only the modified portions of memory state rather than the entire VM state. The system identifies and transmits only those memory pages that have been modified since the last checkpoint, performing less work than a full checkpoint while still achieving complete and accurate state capture for fault tolerance purposes.
Solution Approach 2:
The patent maintains continuity of useful action by allowing the primary VM to continue executing during the checkpoint process. Instead of complete suspension, the system continuously identifies modified pages and transfers them in the background, ensuring that the VM's productive work continues uninterrupted while the checkpoint state is being captured and synchronized.
3Productivity
If memory pages are transmitted while the primary VM is executing, then suspension time is reduced, but there is a risk that the page state may change during transmission
Solution Approach 1:
The patent implements feedback mechanisms through modification history data structures that continuously track which memory pages have been modified. This feedback information guides the selection of pages for transmission and ensures that the backup VM receives an accurate and consistent view of the primary VM's state at any given checkpoint moment, resolving the inconsistency between speed and reliability.
Data Source
AI summary
A virtualization platform provides fault tolerance for a primary virtual machine by continuously transmitting checkpoint information of the primary virtual machine to a collector process, such as a backup virtual machine. When implemented on a hardware platform comprising a multi-processor that supports nested page tables, the virtualization platform leverages the nested page table support to quickly identify memory pages that have been modified between checkpoints. The backup virtual machine provides feedback information to assist the virtualization platform in identifying candidate memory pages for transmitting actual modifications to the memory pages rather than the entire memory page as part of the checkpoint information. The virtualization platform further maintains a modification history data structure to identify memory pages that can be transmitted simultaneous with the execution of the primary virtual machine rather than while the primary virtual machine has been stunned.


