Object Code Hot Update System for Safe Patching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional hot update systems face challenges such as initialization of data structures, unnecessary identification of functions to be updated, and safety concerns when modifying or replacing functions being executed, especially when applying patches that require additional information from upstream analysis, leading to instability or crashes during software updates.

Innovation Solution

The object code hot update system analyzes and modifies both pre-patch and post-patch code to generate a hot update by identifying differences, providing additional initialization functionality, and optimizing patch modifications to minimize unnecessary changes, ensuring safe and efficient updates without restarting the system.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional hot update systems apply patches to running programs, then software updates can be applied without restarting, but system stability deteriorates due to crashes and instability

Engineering Contradiction:
Improveupdate application continuityVSAvoidsystem stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary analysis of the patch against the running program state before applying updates. It identifies functions that are currently executing and prepares update strategies that avoid modifying these functions during execution, thereby preventing crashes while enabling continuous operation

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The update application process is made dynamic by continuously monitoring which functions are currently being executed and adapting the update strategy in real-time. Functions that are actively running are excluded from immediate updates, while idle functions are updated safely, allowing the system to maintain stability during hot updates

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If the system identifies all functions for potential updates, then comprehensive updates can be applied, but unnecessary modifications increase complexity and risk

Engineering Contradiction:
Improveupdate coverageVSAvoidupdate process complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system extracts and identifies only the necessary functions that require updates by analyzing the patch content and comparing it with the running program. Functions that are not affected by the patch or are currently executing are excluded from the update set, reducing complexity while maintaining comprehensive coverage of necessary updates

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of updating all functions, the system applies partial updates only to the specific functions that are both affected by the patch and not currently executing. This selective approach reduces update complexity and risk while ensuring all necessary updates are applied

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If the system modifies functions that are currently being executed, then updates can be applied immediately, but safety deteriorates causing potential crashes

Engineering Contradiction:
Improveupdate application speedVSAvoidupdate safety
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

Before applying updates, the system performs preliminary identification of functions that are currently executing. This preliminary analysis allows the system to plan update application timing, ensuring that no function is modified while it is being executed, thereby maintaining safety without significantly delaying updates

Inventive Principle:
Principle #10Preliminary action

4Adaptability or versatility

If additional data structures are added in post-patch code, then new functionality is enabled, but initialization complexity increases causing update failures

Engineering Contradiction:
Improvenew functionalityVSAvoidinitialization complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system performs preliminary analysis to identify all data structures that are added or modified by the patch. Before applying the update, it prepares initialization code that will properly set up these new data structures, ensuring that the running program can accommodate the new functionality without initialization errors

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8607208B1System and methods for object code hot updates
Publication Date: 2013.12.10 ORACLE INT CORP
  • US8607208B1 patent drawing
  • US8607208B1 patent drawing
  • US8607208B1 patent drawing

AI summary

An object code hot update system generates hot updates for patching running programs by analyzing upstream post-patch code, augmenting the upstream post-patch code to provide augmented post-patch code with additional initialization functionality. The system further provides techniques to identify a candidate extra-change site in upstream post-patch code and modify the upstream post-patch code to generate a hot update.