Host Cache Log for Instant Virtual Machine Rollback
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional snapshot methods for virtual machines (VMs) are inadequate for rolling back to an earlier point in time due to time constraints, storage requirements, and the inability to capture host-side memory changes, which limits their effectiveness in debugging and forensic investigations.
Innovation Solution
A system that uses a host-based cache with a log to record IO writes without overwriting previous data, allowing for continuous snapshots and rollback to any point in time by tracking changes and using flash storage to maintain a record of data locations, enabling the virtual machine to revert to a previous state.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If conventional snapshot methods are used for virtual machines, then storage space is reduced, but the ability to rollback to any point in time is lost and debugging capabilities are limited
Solution Approach 1:
The patent divides the storage system into two distinct components: a cache layer for storing current virtual machine data and a log layer for preserving historical data versions. This segmentation allows the system to maintain full rollback capabilities while using efficient storage space management, as the cache can be small while the log accumulates historical snapshots over time.
Solution Approach 2:
The patent implements preliminary actions by continuously writing data to the log before overwriting cache locations. This ensures that historical data is preserved in the log before the cache is reused, enabling rollback to any point in time without requiring pre-allocated snapshot storage space.
2Reliability
If snapshots are taken frequently for debugging, then rollback capability is improved, but time loss due to VM pausing increases
Solution Approach 1:
The system performs preliminary data capture actions in the background by continuously logging I/O operations to the log layer without pausing the virtual machine. This allows snapshots to be taken instantly at any time, eliminating the time loss associated with traditional snapshot methods that require VM suspension.
Solution Approach 2:
The patent maintains continuous data capture and logging operations without interruption to virtual machine execution. The logging process runs continuously in the background, ensuring that data is always available for rollback while the VM operates normally, thus eliminating downtime while maintaining rollback capability.
3Measurement precision
If host-side memory changes are captured, then debugging accuracy is improved, but system complexity increases
Solution Approach 1:
The patent merges the logging of storage I/O operations with the capture of host-side memory changes into a unified log structure. By combining these functions into a single integrated system that logs all data modifications through the cache layer, the patent achieves comprehensive debugging accuracy without significantly increasing system complexity.
4Speed
If solid-state storage is used instead of conventional hard disk drives, then seek time and latency are reduced, but the ability to maintain historical data without overwriting is limited
Solution Approach 1:
The patent segments the storage system into a fast cache layer using solid-state storage for current operations and a log layer for historical data preservation. This allows the SSD to provide fast seek times and low latency for active data while the log maintains historical versions without being subject to the same overwrite constraints.
Solution Approach 2:
The log acts as an intermediary between the fast SSD cache and permanent storage. It captures and preserves historical data versions that would otherwise be overwritten by the SSD's fast write operations, enabling both high-speed performance and historical data retention.
Data Source
AI summary
A method, system, and computer program product for data consistency, the system comprising receiving an IO from an application at a server cache, writing the IO to a location on the server cache as to not overwrite the previous data to which the IO is directed, updating, in the server cache, the location of the data to correspond to the location where the IO was written and recording the location of the previous data in a log.


