Dynamic In-Memory Program Update via Incremental Function Patching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current methods for updating computer programs require a cold restart, leading to downtime and inefficiency, especially for long-running programs like operating systems or middleware, where frequent updates are hindered by significant time and cost, and existing dynamic program update approaches like DYMOS and Ksplice still interrupt program execution with "Stop The World" scenarios.
Innovation Solution
The method involves identifying specific target functions within a computer program, updating specific sections of these functions with incremental information to generate updated copies, allowing the program to be updated dynamically while running without interruption, thereby reducing downtime and increasing efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If cold restart is used to update computer program, then update can be completed, but program execution is interrupted and downtime occurs
Solution Approach 1:
The patent segments the program update process into incremental sections that can be applied independently. Instead of requiring a complete cold restart, the update is divided into manageable sections that can be integrated into the running program, allowing continuous execution while applying updates incrementally
Solution Approach 2:
The patent prepares updated sections of the program in advance before they are needed. The incremental update information is generated and ready beforehand, allowing it to be applied seamlessly when the program needs updating, avoiding interruption of execution
2Loss of time
If hot patch capability is used to update computer program, then program execution can continue, but update capability is limited to specific extensions only
Solution Approach 1:
The patent creates a universal incremental update mechanism that can apply to any section of any computer program, not just specific extensions. The system generates incremental update information that can be applied to functions, procedures, or any executable code section, making the hot patch capability universally applicable across different program types and structures
3Productivity
If incremental update is applied to running program, then downtime is reduced, but system complexity increases
Solution Approach 1:
The patent implements a self-service update mechanism where the system automatically generates incremental update information, identifies the sections needing updates, and applies them without requiring complex external intervention. The program essentially updates itself by comparing current state with desired state and applying only the necessary incremental changes
Data Source
AI summary
Embodiments of the present disclosure relate to a method, system, and computer program product for dynamic update of a computer program in memory. According to the method, one or more processors obtain incremental information, the incremental information specifying an incremental update to at least one section of at least one target function in a computer program. One or more processors identify, based on the incremental information, the at least one target function to be updated from the computer program. One or more processors generate at least one updated copy of the at least one target function by updating the at least one section of the at least one target function based on the incremental information. One or more processors update the computer program based on the at least one updated copy of the at least one target function while the computer program is running.


