Virtual Machine Patch Application via Synchronized Snapshots
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for updating computer programs during execution face challenges in concurrently loading and patching multiple modules without disrupting the system, particularly in maintaining memory layout and managing dependencies effectively.
Innovation Solution
The method involves creating synchronized snapshots of virtual machines, analyzing binary code sections, replacing them with patch data, and adjusting dependencies to apply program patch sets, allowing for concurrent patching and resuming execution without disruption.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If multiple modules are concurrently loaded and patched during program execution, then system adaptability and continuous operation are improved, but memory layout management and dependency coordination become more complex
Solution Approach 1:
The memory layout is segmented into distinct regions: original code sections, patch code sections, and data sections. Each module and patch is allocated specific memory segments with unique characteristics, allowing independent management of multiple concurrent patches without interfering with each other or the original program execution.
Solution Approach 2:
A memory layout management mechanism acts as an intermediary between the original program modules and the patch modules. This intermediary coordinates memory allocation, manages dependencies, and ensures proper initialization sequences, thereby simplifying the complexity of managing multiple concurrent patches.
2Reliability
If program patches are applied during execution, then system availability is improved, but the risk of introducing errors or instability increases
Solution Approach 1:
Patch code sections are pre-initialized with default values and proper memory allocation before being applied to the running program. Dependency relationships are pre-analyzed and recorded, ensuring that when patches are applied concurrently, all necessary preparations are already in place to prevent errors during the patching process.
Solution Approach 2:
The system implements feedback mechanisms to monitor the application status of each patch module. Dependency satisfaction is tracked and verified, allowing the system to detect and correct potential errors before they propagate, thereby maintaining system reliability during concurrent patching operations.
3Stability of the object's composition
If synchronized snapshots are created for multiple virtual machines, then patch application consistency is improved, but system resources and processing time are consumed
Solution Approach 1:
Synchronized snapshots of multiple virtual machines are merged into a single coherent state representation. By combining the snapshot operations and processing, the system achieves consistent patch application across all machines while reducing the total time required compared to creating and processing separate snapshots for each machine individually.
Data Source
AI summary
Embodiments of the present invention disclose a method, computer program product, and system for applying a plurality of program patch sets on a plurality of computer programs. Virtual machines are prepared to be patchable, in response to a suspended computer program. Synchronized snapshots of the virtual machines are created. A plurality of binary code sections of each of the synchronized snapshots are determined. Symbol data information of each of the synchronized snapshots are analyzed, based on the program patch sets. The determined binary code sections are replaced with a set of patch data, based on the plurality of program patch sets, resulting in patched snapshots for each of the synchronized snapshots. Dependencies of the patch data are adjusted, based on the replaced plurality of binary code sections and the execution of the computer program on each of the virtual machines are resumed using the plurality of patched snapshots.


