Virtual Machine Patch Application via Synchronized Snapshots

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveconcurrent patching capabilityVSAvoidmemory layout management
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If program patches are applied during execution, then system availability is improved, but the risk of introducing errors or instability increases

Engineering Contradiction:
Improvesystem availabilityVSAvoidpatch application errors
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #23Feedback

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

Engineering Contradiction:
Improvepatch application consistencyVSAvoidsnapshot creation time
Core Design Contradiction:
Stability of the object's compositionVSLoss of time

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.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10025582B2Applying program patch sets
Publication Date: 2018.07.17 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10025582B2 patent drawing
  • US10025582B2 patent drawing
  • US10025582B2 patent drawing

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.