Dynamic Library API Address Reassignment Without Restart

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current dynamic library updating processes require termination and restart of applications, as the dynamic linker and loader cannot resolve function and variable addresses for updated libraries, especially when dependencies with other libraries exist.

Innovation Solution

A method and system that dynamically identify dependent program modules and reassign API addresses from the current dynamic library to the updated version, allowing for dynamic reloading without application restarts by tracking calling relationships and updating dependency tables.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the dynamic library is updated using current dynamic linker and loader, then the updated library can be loaded into memory, but the running process cannot resolve the function and variable address of updated library

Engineering Contradiction:
Improvelibrary update capabilityVSAvoidprocess continuity
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system performs preliminary actions by maintaining a dependency table that pre-records the calling relationships between dynamic libraries and program modules. When a library update occurs, this pre-established dependency information enables immediate identification of affected modules without requiring process restart, thus resolving the address resolution issue while maintaining process continuity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The dependency table acts as an intermediary structure that mediates between the updated dynamic library and running program modules. It stores the mapping relationships between library functions/variables and their callers, enabling the system to redirect address resolutions to the updated library versions without interrupting running processes.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Manufacturing precision

If the running process is terminated and restarted to use updated library, then the function and variable address can be resolved correctly, but application availability is reduced

Engineering Contradiction:
Improveaddress resolution accuracyVSAvoidapplication availability
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The system implements dynamic address resolution by maintaining a live dependency table that can be updated while processes are running. When a library is updated, the dependency table dynamically redirects address resolutions to the new library version, eliminating the need for process termination and restart while ensuring accurate address resolution.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system uses feedback mechanisms by continuously tracking which program modules depend on which library functions and variables through the dependency table. This feedback information enables the system to automatically update address resolutions for affected modules when library updates occur, maintaining both accuracy and availability without process interruption.

Inventive Principle:
Principle #23Feedback

3Adaptability or versatility

If the dependency relationship between dynamic libraries and program modules is tracked, then seamless updates can be enabled, but system complexity increases

Engineering Contradiction:
Improvedynamic update capabilityVSAvoiddependency tracking system
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system segments the dependency tracking functionality into a separate, manageable dependency table structure that is distinct from the core dynamic linking mechanism. This segmentation isolates the complexity of tracking relationships into a dedicated data structure, making the overall system more manageable while enabling seamless library updates.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11675593B2Dynamically updating a dynamic library
Publication Date: 2023.06.13 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11675593B2 patent drawing
  • US11675593B2 patent drawing
  • US11675593B2 patent drawing

AI summary

Embodiments of the invention are directed to updating a dynamic library. Aspects include receiving an indication that the dynamic library has been updated and identifying all program modules that depend on the dynamic library. Aspects also include, for each program module that depends on the dynamic library, reassigning an application program interface (API) address for a current version of the dynamic library to an API address of the updated version of the dynamic library.