Dynamic Software Update Micro-Updates via Interference Graph

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Dynamic software updates for large applications involve significant time delays due to the need for all variable units to be inactive before applying patches, which is inconvenient for programmers and end users.

Innovation Solution

A system and method that divides the dynamic patch into micro-updates based on an interference graph analysis, allowing each micro-update to be applied at a safepoint when the corresponding variable units are inactive, while other units may be active, thereby reducing the overall application time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a large dynamic patch is applied to update software, then the software receives comprehensive updates, but the application time is significantly delayed

Engineering Contradiction:
Improvesoftware update completenessVSAvoidupdate application time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent divides a large dynamic software update patch into multiple smaller micro-updates based on an interference graph analysis. Each micro-update contains a subset of the original changes and can be applied independently at different safepoints. This segmentation allows the update process to proceed in parallel across different variable units, dramatically reducing the total application time while ensuring all necessary updates are eventually applied.

Inventive Principle:
Principle #1Segmentation

2Reliability

If all variable units are required to be inactive before applying a patch, then update correctness is maintained, but the update process must wait for complete inactivity

Engineering Contradiction:
Improveupdate correctnessVSAvoidupdate application speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The update process is segmented into multiple micro-updates, each targeting specific variable units. The interference graph identifies which variable units can be updated independently without interfering with others. This allows the system to apply micro-updates as soon as their specific variable units become inactive, rather than waiting for all variable units to be inactive simultaneously.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a dynamic update strategy where the system continuously monitors the state of variable units and applies micro-updates opportunistically when safepoints are reached. The update process adapts to the runtime state of the software, applying updates as soon as conditions permit rather than following a rigid all-or-nothing approach.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9342295B2Dynamic software updates
Publication Date: 2016.05.17 HEWLETT PACKARD ENTERPRISE DEV LP
  • US9342295B2 patent drawing
  • US9342295B2 patent drawing
  • US9342295B2 patent drawing

AI summary

A method, and a corresponding system, for dynamically updating software while the software is running by automatically dividing a patch into a plurality of micro-updates using compiler analysis. The method includes providing the patch which includes updates to several variable units of the software, including functions, type definitions, and data stores. Next, an interference graph of the patch is generated by creating a node corresponding to each variable unit of the patch and creating connected components by adding edges connecting variable units having an impact expression with a non-zero intersection. The patch is divided into the micro-updates, where each micro-update corresponds to a connected component. The micro-updates are then applied to the software when the variable units of the micro-update are at a safepoint, and at least two of the micro-updates are applied at different times while the software is running.