Dynamic Library API Address Reassignment Without Restart
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
Data Source
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.


